RFR: 8366272: The os::xxx APIs do not manage errno correctly [v3]

Kim Barrett kbarrett at openjdk.org
Mon Dec 8 10:06:05 UTC 2025


On Mon, 8 Dec 2025 09:23:44 GMT, Anton Artemov <aartemov at openjdk.org> wrote:

>> Hi, please consider the following changes:
>> 
>> In this PR the handling of `errno` is improved by inspection of the codebase and fixing potential overwrites of `errno` by other methods. Potential overwrites are addressed using `ErrnoPreserver` functionality where necessary. 
>> 
>> Tested in tiers 1 - 5.
>
> Anton Artemov has updated the pull request incrementally with one additional commit since the last revision:
> 
>   8366272: Addressed reviewer's comments.

Changes requested by kbarrett (Reviewer).

src/hotspot/os/bsd/os_bsd.cpp line 2281:

> 2279:         ErrnoPreserver ep;
> 2280:         ::close(fd);
> 2281:         errno = ep.saved_errno();

Just reorder close and errno assignment here too?

src/hotspot/os/linux/os_linux.cpp line 4936:

> 4934:         ErrnoPreserver ep;
> 4935:         ::close(fd);
> 4936:         errno = ep.saved_errno();

Just reorder close and errno assignment here too?

src/hotspot/os/posix/os_posix.cpp line 1033:

> 1031:     ErrnoPreserver ep;
> 1032:     permit_forbidden_function::free(p); // *not* os::free
> 1033:     errno = ep.saved_errno();

`~ErrnoPreserver()` restores the saved errno, so don't need this assignment.

src/hotspot/os/posix/signals_posix.cpp line 1730:

> 1728:   }
> 1729: 
> 1730:   errno = ep.saved_errno();

`~ErrnoPreserver()` restores the saved errno, so don't need this assignment.

src/hotspot/os/windows/os_windows.cpp line 5278:

> 5276:     ErrnoPreserver ep;
> 5277:     permit_forbidden_function::free(p); // *not* os::free
> 5278:     errno = ep.saved_errno();

`~ErrnoPreserver()` restores the saved errno, so don't need this assignment.

-------------

PR Review: https://git.openjdk.org/jdk/pull/28086#pullrequestreview-3551117584
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2597868282
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2597868998
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2597873055
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2597866119
PR Review Comment: https://git.openjdk.org/jdk/pull/28086#discussion_r2597895784


More information about the hotspot-runtime-dev mailing list