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
- Previous message: RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out
- Next message: RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out
- Next message: RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]