RFR (S): 8245509: Crash handler itself crashes when reporting Unsafe.putInt(0) crash
David Holmes
david.holmes at oracle.com
Thu May 28 23:59:36 UTC 2020
Hi Gerard,
On 29/05/2020 3:36 am, gerard ziemski wrote:
> hi all,
>
> Please review this small and simple fix that adds ResourceMark to crash
> handler when printing register info, without which can trigger fatal
> error if the contents of a register happens to be an oop, which
> uses as_C_string(), that in turn calls ResourceArea::allocate_bytes(),
> which requires a ResourceMark.
>
> If thread is not available, we do not attempt to print anything at this
> step (i.e. print_register_info()), but the very next step (i.e.
> print_context()) will always print the registers as HEX values.
>
> bug link at https://bugs.openjdk.java.net/browse/JDK-8245509
> webrev at http://cr.openjdk.java.net/~gziemski/8245509_rev1
> passes Mach5 hs_tier1,2,3,4,5
This fixes the current problem and can be pushed.
But as Coleen notes in the bug report there are other callers of
os::print_location that might also need a ResourceMark, and based on
your stack trace it seems it is Universe::heap()->print_location that is
the true source of the problem and where the ResourceMark perhaps should
be? So I think we need a follow up bug to fix the broader problem.
Thanks,
David
-----
>
> cheers
More information about the hotspot-runtime-dev
mailing list