RFR 8241053: Hotspot runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java test fails on Alpine Linux with debug build
Alexander Scherbatiy
alexander.scherbatiy at bell-sw.com
Mon Aug 3 15:33:24 UTC 2020
Hello,
Could you review the fix for the issue:
Bug: https://bugs.openjdk.java.net/browse/JDK-8241053
Webrev: http://cr.openjdk.java.net/~alexsch/8241053/weberv.00
The following tests fail on Linux Alpine with musl libc:
test/hotspot/jtreg/runtime/Thread/TestThreadStackSizes.java
test/hotspot/jtreg/runtime/CommandLine/OptionsValidation/TestOptionsWithRanges.java
This is because muls pthread_attr_setstacksize(3) function
implementation [1] returns EINVAL when stack size exceeds the certain limit.
According to POSIX pthread_attr_setstacksize() function description [2]:
The pthread_attr_setstacksize() function will fail if:
[EINVAL] The value of stacksize is less than PTHREAD_STACK_MIN or
exceeds a system-imposed limit.
The proposed fix excludes EINVAL value from assert_status() and for the
EINVAL return value makes the same cleanup actions and returns false
from os::create_thread() function as it is done for AIX[3].
To reproduce the issue it needs to build Portola from repository [4]
using instructions from JEP 386: Alpine Linux/x64 Port [5].
After the fix both TestThreadStackSizes.java and
TestOptionsWithRanges.java tests pass on Alpine Linux with musl libc and
on Ubuntu 18.0.4.
[1]
https://git.musl-libc.org/cgit/musl/tree/src/thread/pthread_attr_setstacksize.c
[2]
https://pubs.opengroup.org/onlinepubs/007908799/xsh/pthread_attr_setstacksize.html
[3]
https://hg.openjdk.java.net/jdk/jdk/file/c8102e6fc512/src/hotspot/os/aix/os_aix.cpp#l890
[4] https://github.com/openjdk/portola
[5] https://openjdk.java.net/jeps/386
Thanks,
Alexander.
More information about the hotspot-runtime-dev
mailing list