RFR(S): 8141356: Explicitly stop CMS threads during VM termination.

Kim Barrett kim.barrett at oracle.com
Fri Nov 6 06:40:54 UTC 2015


On Nov 3, 2015, at 4:14 PM, Jungwoo Ha <jwha at google.com> wrote:
> 
> BUG: https://bugs.openjdk.java.net/browse/JDK-8141356
> Webrev: http://cr.openjdk.java.net/~jwha/8141356/webrev.00/
> 
> Inside before_exit(), it says 
> 
>   // Stop concurrent GC threads 
>   Universe::heap()->stop(); 
> 
> but GenCollectedHeap never implemented stop() method, and thus calling empty SharedHeap::stop() method. 
> This causes CMS threads to run during the VM termination and ends up crashing. 
> ConcurrentMarkSweepThread::stop() is currently a dead code and never gets called.
> The patch just implemented GenCollectedHeap::stop() to call ConcurrentMarkSweepThread::stop().

I was going to ask why CMS doesn’t have its own heap class where the implementation of stop should be placed.
But I see that CMS is already significantly entangled with GenCollectedHeap.  Given that, change looks good.



More information about the hotspot-gc-dev mailing list