RFR: Fix jtreg test runtime/StackGuardPages/

Mikael Vidstedt mikael.vidstedt at oracle.com
Mon Apr 2 22:01:27 UTC 2018


Alex,

Can you please add some additional color/details to why it fails? Is it the native or java variant that fails (or both)? 

I understand that the stack is smaller with musl (I ran into that problem in a different context), but I’m not sure I see why Thread.init() would fail just because of that. Help? :)

Cheers,
Mikael

> On Mar 22, 2018, at 3:37 AM, Siebenborn, Axel <axel.siebenborn at sap.com> wrote:
> 
> Hi,
> 
> the test  runtime/StackGuardPages/ fails, as AttachCurrentThread() returns with an error. The reason is a stackoverflow while trying to run java Thread.init().
> The default pthread stack size is 80 K, much less than on other Unixes. 
> 
> The first fix is to check the pthread default stacksize and increase it if it's less than 160K.
> 
> Webrev a:
> http://cr.openjdk.java.net/~asiebenborn/jtreg_StackGuardPages/webrev_a/ 
> 
> However, the reason we need that much stack, just to run a single java method, is the large amount of shadow pages.
> The second fix is just to add a flag to JNI_CreateJavaVM, to set the number of shadow pages to a lower value. However, a change in globals_x86.hpp is needed to allow smaller minimum for that value. Here I miss a macro like MUSL_OLNLY(code).
> 
> Webrev b:
> http://cr.openjdk.java.net/~asiebenborn/jtreg_StackGuardPages/webrev_b/
> 
> I'm unsure which change to use.
> What do you think?
> 
> Regards,
> Axel
> 
> 



More information about the portola-dev mailing list