--- old/src/share/vm/runtime/thread.cpp Sun Jul 30 18:50:01 2017 +++ new/src/share/vm/runtime/thread.cpp Sun Jul 30 18:50:00 2017 @@ -3392,6 +3392,12 @@ tc->do_thread(p); } } + // This function is used by ParallelSPCleanupTask in safepoint.cpp + // for cleaning up JavaThreads, but we have to keep the VMThread's + // _oops_do_parity field in sync so we don't miss a parallel GC on + // the VMThread. + VMThread* vmt = VMThread::vm_thread(); + (void)vmt->claim_oops_do(true, cp); } // The system initialization in the library has three phases.