RFR: 8352112: [ubsan] hotspot/share/code/relocInfo.cpp:130:37: runtime error: applying non-zero offset 18446744073709551614 to null pointer [v2]

Vladimir Kozlov kvn at openjdk.org
Mon Jul 28 14:42:03 UTC 2025


On Mon, 28 Jul 2025 12:39:41 GMT, Boris Ulasevich <bulasevich at openjdk.org> wrote:

>> src/hotspot/share/code/codeBlob.cpp line 156:
>> 
>>> 154:   } else {
>>> 155:     // We need unique and valid not null address
>>> 156:     assert(_mutable_data = blob_end(), "sanity");
>> 
>> Did this mean to assign the `_mutable_data`? I think it should be `==`.
>
> Right. This typo was fixed in https://github.com/openjdk/jdk/pull/26175
> For now I do not see how this change is related with [JDK-8361382: NMT corruption](https://bugs.openjdk.org/browse/JDK-8361382)

Yes, it was fixed. And they were harmless.

I think @jdksjolen linked it because of call stack. But I also don't know how it could cause NMT bug.
@jdksjolen did you try to to undo these changes and reproduce https://bugs.openjdk.org/browse/JDK-8361382 ?


V [libjvm.dylib+0xbf1c8c] VMError::report(outputStream*, bool)+0xa9c (mallocHeader.inline.hpp:107)
V [libjvm.dylib+0xbf5d25] VMError::report_and_die(int, char const*, char const*, __va_list_tag*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x575
V [libjvm.dylib+0x404e20] DebuggingContext::~DebuggingContext()+0x0
V [libjvm.dylib+0x8f770f] MallocHeader* MallocHeader::resolve_checked_impl<void*, MallocHeader*>(void*)+0x15f
V [libjvm.dylib+0x8f720c] MallocTracker::record_free_block(void*)+0xc
V [libjvm.dylib+0x9a719a] os::free(void*)+0xea
V [libjvm.dylib+0x388fb4] CodeBlob::purge()+0x44
V [libjvm.dylib+0x978e98] nmethod::purge(bool)+0x308
V [libjvm.dylib+0x380439] ClassUnloadingContext::purge_nmethods()+0x69

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

PR Review Comment: https://git.openjdk.org/jdk/pull/24102#discussion_r2236768883


More information about the hotspot-compiler-dev mailing list