Integrated: 8329665: fatal error: memory leak: allocating without ResourceMark

Patricio Chilano Mateo pchilanomate at openjdk.org
Tue Apr 16 14:13:06 UTC 2024


On Thu, 4 Apr 2024 16:23:50 GMT, Patricio Chilano Mateo <pchilanomate at openjdk.org> wrote:

> There are two places in Loom code that call f.oops_interpreted_do() to process oops in the stackChunk. Although not obvious this method seem to require to have a ResourceMark on scope and there are several contexts where these two are call where we don't have one. The reason why a ResourceMark is needed is because OopMapCache::compute_one_oop_map() might allocate from the resource area if _mask_size is > 4 * BitsPerWord, which depends on the amount of locals + expression stack of the corresponding method. But ~InterpreterOopMap already checks if the _bit_mask was allocated in the resource area and in that case it will free it. So the ResourceMark is not strictly needed except that in debug mode we will actually hit the assert if there is not one in scope when trying to allocate the _bit_mask.
> 
> Thanks,
> Patricio

This pull request has now been integrated.

Changeset: e073d5b3
Author:    Patricio Chilano Mateo <pchilanomate at openjdk.org>
URL:       https://git.openjdk.org/jdk/commit/e073d5b37422c2adad18db520c5f4fcf120c147b
Stats:     14 lines in 3 files changed: 1 ins; 13 del; 0 mod

8329665: fatal error: memory leak: allocating without ResourceMark

Reviewed-by: dholmes, shade, coleenp

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

PR: https://git.openjdk.org/jdk/pull/18632


More information about the hotspot-dev mailing list