RFR(S): 8149789: SIGSEGV in CompileTask::print

Nils Eliasson nils.eliasson at oracle.com
Wed Feb 24 14:26:25 UTC 2016


Thank you Vladimir!

I'll push this together with the updated CompilerQueueTest (FR(S/M): 
8069160: serviceability/dcmd/compiler/CompilerQueueTest.java fails due 
to class not found) when it has passed review.

Best regards,
Nils Eliasson

On 2016-02-23 23:50, Vladimir Kozlov wrote:
> Looks good.
>
> Thanks,
> Vladimir
>
> On 2/23/16 7:16 AM, Nils Eliasson wrote:
>> Hi,
>>
>> Summary:
>> In bug JDK-8063112 I removed the vm_operation from some compiler 
>> diagnostic commands. That was ok, but I also added
>> printing of the threads with active compile tasks in the 
>> Compiler.queue command. That printing is not safe. In this
>> crash a compiler thread finishes compiling a task while the 
>> diagnostic command is printing the tasks.
>>
>> Solution:
>> Make this diagnostic command require a safepoint - then it will have 
>> to block until no compiler threads are running in
>> the compileBroker (possibly freeing tasks). When the safepoint is 
>> reached, it is safe to print the tasks, since then no
>> compile threads can reach the state where tasks are freed without 
>> blocking.
>>
>> Testing:
>> Running the repro in the bug + dedicated jcmd Compiler.queue test.
>>
>> Webrev: http://cr.openjdk.java.net/~neliasso/8149789/webrev.01/
>> Bug: https://bugs.openjdk.java.net/browse/JDK-8149789
>>
>> Please review!
>>
>> Best regards,
>> Nils Eliasson



More information about the hotspot-compiler-dev mailing list