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

Nils Eliasson nils.eliasson at oracle.com
Tue Feb 23 15:16:09 UTC 2016


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