RFR: 8360048: NMT crash in gtest/NMTGtests.java: fatal error: NMT corruption: Block at 0x0000017748307120: header canary broken

Gerard Ziemski gziemski at openjdk.org
Tue Jun 24 13:11:29 UTC 2025


On Tue, 24 Jun 2025 07:52:38 GMT, Afshin Zafari <azafari at openjdk.org> wrote:

> The canary header test failed since there were concurrent `remove` and `free()` from the tree. The `remove` operations are synch'ed with corresponding NMT lock. The `ReserveMemory::reserve()` uses the same lock internally and is not included in the locked code block.
> 
> Tests: tier5 {macosx-aarch64, linux-x64, windows-x64} x {debug, release}

Marked as reviewed by gziemski (Reviewer).

test/hotspot/gtest/runtime/test_virtualMemoryTracker.cpp line 452:

> 450:       MemTracker::NmtVirtualMemoryLocker nvml;
> 451:       rtree = VirtualMemoryTracker::Instance::tree();
> 452:       rtree->tree().remove_all();

I think I asked about this before - can we  do remove_all  in the constructor to avoid this 2 line repeating pattern?

Otherwise looks good, can you please check the GHA test failures on Windows?

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

PR Review: https://git.openjdk.org/jdk/pull/25950#pullrequestreview-2953768666
PR Review Comment: https://git.openjdk.org/jdk/pull/25950#discussion_r2163961744


More information about the hotspot-runtime-dev mailing list