RFR: 8027429: Add diagnostic command VM.info to get hs_err print-out

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/8027429_jdk9_01/
>
> 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