RFR (S) 8209889: RedefineStress tests crash

coleen.phillimore at oracle.com coleen.phillimore at oracle.com
Thu Oct 4 11:45:25 UTC 2018


Summary: Create CompileTaskWrapper before potential safepoint

open webrev at http://cr.openjdk.java.net/~coleenp/8209889.01/webrev
bug link https://bugs.openjdk.java.net/browse/JDK-8209889

MetadataOnStackMark needs to find the CompileTask in the current thread, 
or else the Method isn't marked as being alive, so if it's old/obsolete, 
it is freed.  There are checks to disable adding old methods to the 
compile queue but if the method is redefined after this point, there may 
be a preexisting bug that we compile an old method.  This change just 
fixes the crash.

Can some compiler person (Martin?) look at where I moved 
possibly_add_compiler_threads and let me know if that looks okay? 
There's a comment in the change that says why you need to create the 
CompileTaskWrapper before that call.  I couldn't find a place to put a 
NoSafepointVerifier.

Tested with the test that failed, which doesn't reproduce the bug except 
rarely, and test/hotspot/jtreg/compiler tests.  tier1 an 2 in progress.

Thanks,
Coleen


More information about the hotspot-dev mailing list