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