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