RFR: Avoid jtreg test timeout in aarch64 due to a stackoverflow in process reaper
Arthur Eubanks
aeubanks at openjdk.java.net
Thu May 7 16:26:31 UTC 2020
On Wed, 6 May 2020 09:41:59 GMT, Jie He <github.com+10233373+jhe33 at openjdk.org> wrote:
> Process reaper has a small size stack by default, 128K. With tsan
> enabled, it often causes SOE failure when running jtreg tests. Set
> -Djdk.lang.processReaperUseDefaultStackSize=true, to let jtreg test
> use default JVM stack size (global variable ThreadStackSize) in
> aarch64, which could be configured by -Xss.
>
> I took an investigation about the stackoverflow, [1].
> and found the different GLIBC behaviors between x86 and aarch64 stack
> allocation due to default stack size in openjdk. x86 will get the stack from
> glibc cached stack because it matches the threshold to allocate a stack from
> cached stack, but aarch64 not.
>
> [1] https://groups.google.com/forum/#!topic/thread-sanitizer/RsPcxUXBokg
I read through https://groups.google.com/forum/#!topic/thread-sanitizer/RsPcxUXBokg (nice investigation btw!) but don't
quite understand
> and found the different GLIBC behaviors between x86 and aarch64 stack
> allocation due to default stack size in openjdk. x86 will get the stack from
> glibc cached stack because it matches the threshold to allocate a stack from
> cached stack, but aarch64 not.
Do you mean that on x86 the stack size of the thread is larger than requested because glibc happened to have something
larger lying around to use? So we are currently getting lucky in x86 with stack sizes?
-------------
PR: https://git.openjdk.java.net/tsan/pull/8
More information about the tsan-dev
mailing list