RFR: 8275800: Redefinition leaks MethodData::_extra_data_lock

David Holmes dholmes at openjdk.java.net
Mon Oct 25 21:40:40 UTC 2021


On Mon, 25 Oct 2021 12:51:32 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:

> The Mutex destructor isn't called for the MDO lock.  We found this leak with crashes for the patch to print all mutex locks on error, which is now withdrawn.  It was easily reproduced with that patch.  It is not easily reproduced otherwise.
> I tested this change with that patch though and it passes tier1-6,

src/hotspot/share/oops/instanceKlass.cpp line 2692:

> 2690: 
> 2691: // Called also by InstanceKlass::deallocate_contents
> 2692: void InstanceKlass::release_C_heap_structures_internal() {

Why do we have two different cleanup functions here? It seems overly subtle that `deallocate_contents` only calls `release_C_heap_structures_internal`, rather than `release_C_heap_structures`. And now the only difference is whether `constants()->release_C_heap_structures()` is called, it seems to me that distinction should perhaps be more explicit in the caller.

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

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


More information about the hotspot-dev mailing list