RFR: 8366905: Store AdapterBlob pointer in AdapterHandlerEntry [v2]

Vladimir Kozlov kvn at openjdk.org
Fri Sep 19 20:47:53 UTC 2025


On Fri, 19 Sep 2025 14:57:58 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:

>> This PR removes the need to store entry point addresses in AdapterHandlerEntry by storing a direct pointer to AdapterBlob instead. Entry point addresses can be computed on the fly from the entry point offsets stored in AdapterBlob.
>
> Ashutosh Mehra has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains five additional commits since the last revision:
> 
>  - Merge branch 'master' into store-blob-pointer-adapterhandlerentry-v2
>  - Remove unused method and change numeric constants to enums
>    
>    Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
>  - Address review comments
>    
>    Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
>  - Do not call generate_i2c2i_adapters() on zero
>    
>    Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>
>  - Store pointer to AdapterBlob in AdapterHandlerEntry
>    
>    Signed-off-by: Ashutosh Mehra <asmehra at redhat.com>

Test runtime/cds/appcds/aotClassLinking/StringConcatStress.java#aot crashed on all platforms:


#  Internal Error (/workspace/open/src/hotspot/share/memory/resourceArea.cpp:54), pid=3871604, tid=3871606
#  fatal error: memory leak: allocating without ResourceMark
#
# JRE version:  (26.0) (fastdebug build )
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 26-internal-2025-09-19-1627068.vladimir.kozlov.jdkgit2, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
# Problematic frame:
# V  [libjvm.so+0x191e1c6]  ResourceArea::verify_has_resource_mark() [clone .part.0]+0x26
#

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

Command Line: -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/install/jdk/24/36/bundles/linux-x64/jdk-24_linux-x64_bin.tar.gz/jdk-24 -Djava.io.tmpdir=/tmp -XX:+AOTClassLinking -Xlog:arguments,aot,cds:file=StringConcatStressApp.production.log::filesize=0 -XX:AOTMode=on -XX:AOTCache=StringConcatStressApp.aot StringConcatStressApp

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

Current thread (0x00007fad1002ded0):  JavaThread "Unknown thread" [_thread_in_vm, id=3871606, stack(0x00007fad140b9000,0x00007fad141b9000) (1024K)]

Stack: [0x00007fad140b9000,0x00007fad141b9000],  sp=0x00007fad141b59a0,  free space=1010k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.so+0x191e1c6]  ResourceArea::verify_has_resource_mark() [clone .part.0]+0x26  (resourceArea.cpp:54)
V  [libjvm.so+0x191e55b]  (align.hpp:82)
V  [libjvm.so+0x17e4f87]  stringStream::as_string(bool) const+0x57  (ostream.cpp:425)
V  [libjvm.so+0x1989e3b]  AdapterHandlerLibrary::link_aot_adapters()+0x54b  (sharedRuntime.cpp:2359)
V  [libjvm.so+0x198a925]  AdapterHandlerLibrary::initialize()+0x3a5  (sharedRuntime.cpp:2558)
V  [libjvm.so+0x10481b6]  init_globals()+0xa6  (init.cpp:168)
V  [libjvm.so+0x1b7c08e]  Threads::create_vm(JavaVMInitArgs*, bool*)+0x34e  (threads.cpp:592)
V  [libjvm.so+0x12159b4]  JNI_CreateJavaVM+0x54  (jni.cpp:3587)

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

PR Comment: https://git.openjdk.org/jdk/pull/27101#issuecomment-3313756166


More information about the hotspot-dev mailing list