RFR: 8360941: [ubsan] MemRegion::end() shows runtime error: applying non-zero offset 8388608 to null pointer [v3]

Matthias Baesken mbaesken at openjdk.org
Wed Jul 16 14:45:05 UTC 2025


> When running HS test
> gtest/GTestWrapper.java
> with ubsan-enabled binaries on macOS aarch64, the following error is reported (did not see this so far on Linux but there we use gcc and it seems the gcc/ubsan checks are a bit more limited).
> 
> test/hotspot/gtest/gc/g1/test_freeRegionList.cpp:37: Failure
> Death test: child_G1FreeRegionList_length_()
>     Result: died but not with expected exit code:
>             Terminated by signal 6 (core dumped)
> Actual msg:
> 
> [  DEATH   ] /jdk/src/hotspot/share/memory/memRegion.hpp:66:43: runtime error: applying non-zero offset 8388608 to null pointer
> [  DEATH   ]     #0 0x108afd6f4 in MemRegion::end() const+0x84 (libjvm.dylib:arm64+0x16556f4)
> [  DEATH   ]     #1 0x1075c68a0 in G1FreeRegionList_length_other_vm_Test::TestBody()+0x380 (libjvm.dylib:arm64+0x11e8a0)
> [  DEATH   ]     #2 0x1090f3bb0 in testing::Test::Run()+0xc0 (libjvm.dylib:arm64+0x1c4bbb0)
> [  DEATH   ]     #3 0x1090f4d94 in testing::TestInfo::Run()+0x1e4 (libjvm.dylib:arm64+0x1c4cd94)
> [  DEATH   ]     #4 0x1090f6754 in testing::TestSuite::Run()+0x43c (libjvm.dylib:arm64+0x1c4e754)
> [  DEATH   ]     #5 0x109103ca0 in testing::internal::UnitTestImpl::RunAllTests()+0x48c (libjvm.dylib:arm64+0x1c5bca0)
> [  DEATH   ]     #6 0x109103588 in testing::UnitTest::Run()+0x78 (libjvm.dylib:arm64+0x1c5b588)
> [  DEATH   ]     #7 0x1074a9ac0 in runUnitTestsInner(int, char**)+0x724 (libjvm.dylib:arm64+0x1ac0)
> [  DEATH   ]     #8 0x102dc3f18 in main+0x2c (gtestLauncher:arm64+0x100003f18)
> [  DEATH   ]     #9 0x196fea0dc  (<unknown module>)
> [  DEATH   ] 
> [  DEATH   ] SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /jdk/src/hotspot/share/memory/memRegion.hpp:66:43 in 
> [  DEATH   ] 
> 
> 
> 
> Seems the test_freeRegionList.cpp uses a special MemRegion starting at nullptr ; but this causes a bit of trouble when adding to start == nullptr .
> So far I see this issue just in the gtest, seems other MemRegion objects do not start at nullptr .

Matthias Baesken has updated the pull request incrementally with two additional commits since the last revision:

 - blank
 - blank

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/26216/files
  - new: https://git.openjdk.org/jdk/pull/26216/files/d31a4f39..f325d877

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=26216&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=26216&range=01-02

  Stats: 1 line in 1 file changed: 0 ins; 0 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/26216.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/26216/head:pull/26216

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


More information about the hotspot-runtime-dev mailing list