URGENT RFR (S): fix for Test8004741.java crashes with SIGSEGV in JDK10-hs nightly (8185273)

Daniel D. Daugherty daniel.daugherty at oracle.com
Mon Jul 31 14:24:31 UTC 2017


Greetings,

I have a fix for the following P1 JDK10-hs integration_blocker bug:

     8185273 Test8004741.java crashes with SIGSEGV in JDK10-hs nightly
     https://bugs.openjdk.java.net/browse/JDK-8185273

The fix is 2 lines and the comment describing the fix is 4 lines:

src/share/vm/runtime/thread.cpp:

L3388: void Threads::parallel_java_threads_do(ThreadClosure* tc) {
<snip>
L3395:   // This function is used by ParallelSPCleanupTask in safepoint.cpp
L3396:   // for cleaning up JavaThreads, but we have to keep the VMThread's
L3397:   // _oops_do_parity field in sync so we don't miss a parallel GC on
L3398:   // the VMThread.
L3399:   VMThread* vmt = VMThread::vm_thread();
L3400:   (void)vmt->claim_oops_do(true, cp);

I'm also including some new logging for the VMThread (tag == 'vmthread')
that came in useful during this bug hunt. Lastly, I've fixed a few minor
typos that I ran across in the areas where I was hunting.

Webrev URL: http://cr.openjdk.java.net/~dcubed/8185273-webrev/0/

There's lots of discussion in the bug. The evaluation comment that I added
on Sunday, July 30 is probably the most complete and hopefully the most 
clear.

For context, here's the webrev for 8180932 and another bug fix:

http://cr.openjdk.java.net/~rkennke/8180932/webrev.18/
http://cr.openjdk.java.net/~rkennke/8185102/webrev.01/


Testing:
   - JPRT
   - Test8004741.java has been running in a forever loop with 'fastdebug'
     bits (17200+ iterations) and 'slowdebug' bits (13400+ iterations)

Comments, questions and feedback are welcome.

Dan

P.S.
Roman and I were also thinking about updating
Threads::assert_all_threads_claimed() to verify
that the VMThread is also claimed... Obviously
that's not part of the current patch...



More information about the hotspot-gc-dev mailing list