RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out (original) (raw)

Frederic Parain frederic.parain at oracle.com
Wed Oct 28 17:29:32 UTC 2015


Hi David,

I haven't review all the code yet, but I'm concerned with the fact that the diagnostic command is calling VMError::report(). This method has been implemented to be executed in the particular context of fatal errors, and its usage while the VM is running normally seems dangerous.

For instance, VMError::report() consciously avoids grabbing locks because of the risk of deadlock during the error reporting. The consequence is that some data structures are browsed in an unsafe way. One example: VMError::report() calls Threads::print_on_error() which iterates over the thread list without owning the Threads_lock.

The implementation of the diagnostic command seems also to exclude a lot of reporting from the initial VMError::report() method. Have you considered implementing a new MT-safe reporting method rather than trying to modify the special VMError::report() methods? (Note that some code factorization between VMError::report() and this new method should be possible).

Thanks,

Fred

On 28/10/2015 17:18, david buck wrote:

Hi!

Please review my change for this small enhancement. bug: https://bugs.openjdk.java.net/browse/JDK-8027429 webrev: http://cr.openjdk.java.net/~dbuck/8027429jdk901/ Cheers, -Buck

-- Frederic Parain - Oracle Grenoble Engineering Center - France Phone: +33 4 76 18 81 17 Email: Frederic.Parain at oracle.com



More information about the hotspot-runtime-dev mailing list