RFR: 8273639: tests fail with "assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark"

Per Liden pliden at openjdk.java.net
Tue Sep 14 08:42:11 UTC 2021


On Mon, 13 Sep 2021 13:48:12 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

>> This is a fix for an unintended side-effect of JDK-8273482. The problem is that we need to have a HandleMark on the stack before calling ThreadStackTrace::dump_stack_at_safepoint(). Before JDK-8273482, calls to ThreadStackTrace::dump_stack_at_safepoint()  were always done from the VMThread, which always has a HandleMark on the stack before evaluating a VM operation. After JDK-8273482, calls to this function can be made from WorkerThreads, which doesn't always have a HandleMark on its stack. The fix is simple, make sure we have a HandleMark on the stack before calling ThreadStackTrace::dump_stack_at_safepoint().
>
> Looks good and trivial.  We should remove the HandleMark mechanism which is a leftover from when Metadata was in Handles.  There aren't many places where we have a lot of Handles that would benefit from the optimization of bulk cleanup of Handles and it's really easy to have unnecessary Handles that GC has to process.

Thanks for reviewing @coleenp and @dholmes-ora!

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

PR: https://git.openjdk.java.net/jdk/pull/5492


More information about the hotspot-runtime-dev mailing list