RFR: 8337981: ShenandoahHeap::is_in should check for alive regions
Aleksey Shipilev
shade at openjdk.org
Wed Aug 7 14:57:35 UTC 2024
On Wed, 7 Aug 2024 11:51:25 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
> The expected behavior of `CollectedHeap::is_in` is to check whether the object belongs to the committed parts of the heap. This is useful to check if object resides in the parts of the heap the GC knows are not dead. Yet, Shenandoah's check just verifies that oop is within the heap bounds. So `is_in` check for an object that is in trashed/empty region would pass by accident, and we will miss detecting bugs. This should be rectified.
>
> I also re-wired assertions/verification code to be clear whether we check for heap bounds or actual in-heap conditions.
>
> Additional testing:
> - [ ] Linux AArch64 server fastdebug, `all` with `-XX:+UseShenandoahGC`
Test failures, there are verifier paths that touch dead Reference.referent, apparently. Figuring it out.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20492#issuecomment-2273672661
More information about the hotspot-gc-dev
mailing list