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