JDK-8360048 : NMT crash in gtest/NMTGtests.java: fatal error: NMT corruption: Block at 0x0000017748307120: header canary broken
  • Type: Bug
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 26
  • Priority: P2
  • Status: Open
  • Resolution: Unresolved
  • OS: windows
  • CPU: x86_64
  • Submitted: 2025-06-19
  • Updated: 2025-07-15
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 26
26Unresolved
Related Reports
Cloners :  
Relates :  
Relates :  
Description
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (nmt/mallocHeader.inline.hpp:107), pid=60236, tid=70476
#  fatal error: NMT corruption: Block at 0x0000017748307120: header canary broken
#
# JRE version: Java(TM) SE Runtime Environment (26.0+3) (build 26-ea+3-228)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (26-ea+3-228, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
# Problematic frame:
# V  [jvm.dll+0xa65592]  MallocTracker::record_free_block+0x202
#
# Core dump will be written. Default location: C:\sb\prod\1750366415\testoutput\test-support\jtreg_open_test_hotspot_jtreg_hotspot_misc\scratch\0\hs_err_pid60236.mdmp
#
# If you would like to submit a bug report, please visit:
#   https://bugreport.java.com/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  S U M M A R Y ------------

Command Line: -XX:+ExecutingUnitTests -XX:NativeMemoryTracking=detail 

Host: AMD EPYC 7J13 64-Core Processor                , 12 cores, 23G,  Windows Server 2019 , 64 bit Build 17763 (10.0.17763.7009)
Time: Thu Jun 19 21:57:23 2025 /GM elapsed time: 4.181915 seconds (0d 0h 0m 4s)

---------------  T H R E A D  ---------------

Current thread (0x000001773fa42400):  JavaThread "main"             [_thread_in_native, id=70476, stack(0x0000001a36c90000,0x0000001a36d90000) (1024K)]

Stack: [0x0000001a36c90000,0x0000001a36d90000],  sp=0x0000001a36d8e1f0,  free space=1016k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [jvm.dll+0xa65592]  MallocTracker::record_free_block+0x202  (mallocTracker.cpp:206)
V  [jvm.dll+0xae852a]  os::free+0x3a  (os.cpp:780)
V  [jvm.dll+0x2b241d]  Treap<unsigned __int64,VMATree::IntervalChange,VMATree::PositionComparator,TreapCHeapAllocator>::remove_all+0x1dd  (nmtTreap.hpp:289)
V  [jvm.dll+0x309fba]  VirtualMemoryTrackerTest::test_add_committed_region_adjacent_overlapping+0x4a  (test_virtualMemoryTracker.cpp:173)
V  [jvm.dll+0x3089c7]  NMT_VirtualMemoryTracker_add_committed_region_vm_Test::TestBody+0x17  (test_virtualMemoryTracker.cpp:570)
V  [jvm.dll+0xd3d22f]  testing::internal::HandleExceptionsInMethodIfSupported<testing::TestSuite,void>+0x4f  (gtest.cc:2670)
V  [jvm.dll+0xd673fc]  testing::TestInfo::Run+0x1cc  (gtest.cc:2836)
V  [jvm.dll+0xd67788]  testing::TestSuite::Run+0x298  (gtest.cc:3017)
V  [jvm.dll+0xd6813a]  testing::internal::UnitTestImpl::RunAllTests+0x5aa  (gtest.cc:5921)
V  [jvm.dll+0xd3d313]  testing::internal::HandleExceptionsInMethodIfSupported<testing::internal::UnitTestImpl,bool>+0x53  (gtest.cc:2670)
V  [jvm.dll+0xd67a5a]  testing::UnitTest::Run+0x13a  (gtest.cc:5484)
V  [jvm.dll+0x874e9]  runUnitTestsInner+0x2d9  (gtestMain.cpp:292)
V  [jvm.dll+0x8777f]  runUnitTests+0xff  (gtestMain.cpp:373)
C  [gtestLauncher.exe+0x101c]  main+0x1c  (gtestLauncher.cpp:40)
C  [gtestLauncher.exe+0x121c]  __scrt_common_main_seh+0x10c  (exe_common.inl:288)
C  [KERNEL32.DLL+0x17ac4]  (no source info available)
C  [ntdll.dll+0x5a8c1]  (no source info available)

Comments
The compiler/debug/TestStressBailout.java failures are now re-linked against JDK-8361752
14-07-2025

I re-opened JDK-8361752 for the TestStressBailout.java failures which are probably triggered by JDK-8357473.
14-07-2025

It is very curious that the original failure of gtest/NMTGtests.java#nmt-detail has not been seen the first occurrences on June 19 and 23. Instead compiler/debug/TestStressBailout.java started failing very regularly (first seen June 25) and continues to fail even with the patch contained in the PR for this issue.
14-07-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/26284 Date: 2025-07-14 02:53:53 +0000
14-07-2025

[~azafari] Could you please have a look at the linked issues and confirm that these are duplicates? Which change introduced this regression? Looks like the PR is ready for integration?
10-07-2025

RT Triage: ILW = HML = P2
24-06-2025

A pull request was submitted for review. Branch: master URL: https://git.openjdk.org/jdk/pull/25950 Date: 2025-06-24 07:52:38 +0000
24-06-2025

Only one sighting so far
20-06-2025

Do we know yet if it reproduces?
20-06-2025