RFR: 8289093: BlockLocationPrinter fails to decode addresses with G1

Albert Mingkun Yang ayang at openjdk.org
Fri Jun 24 22:15:56 UTC 2022


On Fri, 24 Jun 2022 12:04:49 GMT, Thomas Schatzl <tschatzl at openjdk.org> wrote:

> Hi all,
> 
>   can I have reviews for this change that fixes an assertion failure when trying to add annotations to the hs_err file?
> 
> The `block_start` API from `CollectedHeap` assumes that useful values for all given addresses is returned, not asserting/crashing like some method deeper in the call chain does since [JDK-8270540](https://bugs.openjdk.org/browse/JDK-8270540), resulting in somewhat scrambled hs_err files and additional stack frames to look at in the debugger. 
> 
> Testing: local compilation, gha, tier1-3
> 
> Thanks,
>   Thomas

src/hotspot/share/gc/g1/g1CollectedHeap.cpp line 2355:

> 2353:   // outside of the allocated area.
> 2354:   if (addr >= hr->top()) {
> 2355:     return hr->top();

In the caller, `block_is_obj` from `if (p != NULL && CollectedHeapT::heap()->block_is_obj(p)) {` would choke on `top` as well, right? Returning `nullptr` makes more sense to me.

-------------

PR: https://git.openjdk.org/jdk19/pull/68



More information about the hotspot-gc-dev mailing list