Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8356285

MemorySanitizer: use-of-uninitialized-value reported in CodeCache::get_code_heap_containing

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P3 P3
    • 25
    • 25
    • hotspot
    • x86_64
    • linux

      When trying out the clang MSan (memory sanitizer) https://clang.llvm.org/docs/MemorySanitizer.html (with clang version 17.0.6 on Linux x86_64), the following issue is reported already in the build when the new jdk is already used :

      ==62047==WARNING: MemorySanitizer: use-of-uninitialized-value
          #0 0x7ff2e9ab3f41 in CodeCache::get_code_heap_containing(void*) make/hotspot/src/hotspot/share/code/codeCache.cpp:449:9
          #1 0x7ff2e9ab3f41 in CodeCache::find_blob(void*) make/hotspot/src/hotspot/share/code/codeCache.cpp:649:22
          #2 0x7ff2ea99f50b in frame::init(long*, long*, unsigned char*) make/hotspot/src/hotspot/cpu/x86/frame_x86.inline.hpp:62:9
          #3 0x7ff2ea99f50b in frame::frame(long*, long*, unsigned char*) make/hotspot/src/hotspot/cpu/x86/frame_x86.inline.hpp:85:3
          #4 0x7ff2ea99f50b in JavaThread::pd_last_frame() make/hotspot/src/hotspot/os_cpu/linux_x86/javaThread_linux_x86.cpp:31:10
          #5 0x7ff2ea8cda36 in JavaThread::last_frame() make/hotspot/src/hotspot/share/runtime/javaThread.hpp:1015:12
          #6 0x7ff2ea8cda36 in LastFrameAccessor::LastFrameAccessor(JavaThread*) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:86:28
          #7 0x7ff2ea8cda36 in InterpreterRuntime::resolve_get_put(JavaThread*, Bytecodes::Code) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:644:21
          #8 0x7ff2ea8d7121 in InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:993:5
          #9 0x7ff2df60d430 (<unknown module>)

        Uninitialized value was stored to memory at
          #0 0x7ff2ea2264cf in JavaFrameAnchor::make_walkable() make/hotspot/src/hotspot/cpu/x86/frame_x86.cpp:705:17
          #1 0x7ff2ea8cda02 in JavaThread::last_frame() make/hotspot/src/hotspot/share/runtime/javaThread.hpp:1014:13
          #2 0x7ff2ea8cda02 in LastFrameAccessor::LastFrameAccessor(JavaThread*) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:86:28
          #3 0x7ff2ea8cda02 in InterpreterRuntime::resolve_get_put(JavaThread*, Bytecodes::Code) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:644:21
          #4 0x7ff2ea8d7121 in InterpreterRuntime::resolve_from_cache(JavaThread*, Bytecodes::Code) make/hotspot/src/hotspot/share/interpreter/interpreterRuntime.cpp:993:5
          #5 0x7ff2df60d430 (<unknown module>)
          #6 0x7ff2df5f6fa5 (<unknown module>)
          #7 0x7ff2ea90b5df in JavaCalls::call_helper(JavaValue*, methodHandle const&, JavaCallArguments*, JavaThread*) make/hotspot/src/hotspot/share/runtime/javaCalls.cpp:415:7
          #8 0x7ff2ea82b7db in InstanceKlass::call_class_initializer(JavaThread*) make/hotspot/src/hotspot/share/oops/instanceKlass.cpp:1702:5
          #9 0x7ff2ea8225f7 in InstanceKlass::initialize_impl(JavaThread*) make/hotspot/src/hotspot/share/oops/instanceKlass.cpp:1311:7
          #10 0x7ff2ecd12b9c in initialize_class(Symbol*, JavaThread*) make/hotspot/src/hotspot/share/runtime/threads.cpp:126:31
          #11 0x7ff2ecd12b9c in Threads::initialize_java_lang_classes(JavaThread*, JavaThread*) make/hotspot/src/hotspot/share/runtime/threads.cpp:347:3
          #12 0x7ff2ecd168ab in Threads::create_vm(JavaVMInitArgs*, bool*) make/hotspot/src/hotspot/share/runtime/threads.cpp:688:3
          #13 0x7ff2eadb6806 in JNI_CreateJavaVM_inner(JavaVM_**, void**, void*) make/hotspot/src/hotspot/share/prims/jni.cpp:3587:12
          #14 0x7ff2eadb6806 in JNI_CreateJavaVM make/hotspot/src/hotspot/share/prims/jni.cpp:3678:14
          #15 0x7ff2ef6bcdc6 in InitializeJVM make/src/java.base/share/native/libjli/java.c:1507:9
          #16 0x7ff2ef6bcdc6 in JavaMain make/src/java.base/share/native/libjli/java.c:494:10
          #17 0x7ff2ef6cbd38 in ThreadJavaMain make/src/java.base/unix/native/libjli/java_md.c:646:29
          #18 0x7ff2ef6726e9 in start_thread (/lib64/libpthread.so.0+0xa6e9) (BuildId: 938e42b7e407d175ee3ef9a89c038168101d330c)

        Member fields were destroyed
          #0 0x5637c31d2f30 in __sanitizer_dtor_callback_fields /home/abuild/rpmbuild/BUILD/llvm-17.0.6.src/build/../projects/compiler-rt/lib/msan/msan_interceptors.cpp:982:5
          #1 0x7ff2ea71b630 in methodHandle::~methodHandle() make/hotspot/src/hotspot/share/runtime/handles.hpp:174:1
          #2 0x7ff2ea71b630 in methodHandle::~methodHandle() make/hotspot/src/hotspot/share/runtime/handles.cpp:96:1
          #3 0x7ff2eb6a97fd in klassVtable::check_constraints(GrowableArray<InstanceKlass*>*, JavaThread*) make/hotspot/src/hotspot/share/oops/klassVtable.cpp:612:3
          #4 0x7ff2eb6aaadd in klassVtable::initialize_vtable_and_check_constraints(JavaThread*) make/hotspot/src/hotspot/share/oops/klassVtable.cpp:620:3
          #5 0x7ff2ea826ad6 in InstanceKlass::link_class_impl(JavaThread*) make/hotspot/src/hotspot/share/oops/instanceKlass.cpp:1030:18
          #6 0x7ff2ea81f519 in InstanceKlass::link_class(JavaThread*) make/hotspot/src/hotspot/share/oops/instanceKlass.cpp:894:5
          #7 0x7ff2ea81f519 in InstanceKlass::initialize_impl(JavaThread*) make/hotspot/src/hotspot/share/oops/instanceKlass.cpp:1179:3
          #8 0x7ff2ecd12b9c in initialize_class(Symbol*, JavaThread*) make/hotspot/src/hotspot/share/runtime/threads.cpp:126:31
          #9 0x7ff2ecd12b9c in Threads::initialize_java_lang_classes(JavaThread*, JavaThread*) make/hotspot/src/hotspot/share/runtime/threads.cpp:347:3
          #10 0x7ff2ecd168ab in Threads::create_vm(JavaVMInitArgs*, bool*) make/hotspot/src/hotspot/share/runtime/threads.cpp:688:3
          #11 0x7ff2eadb6806 in JNI_CreateJavaVM_inner(JavaVM_**, void**, void*) make/hotspot/src/hotspot/share/prims/jni.cpp:3587:12
          #12 0x7ff2eadb6806 in JNI_CreateJavaVM make/hotspot/src/hotspot/share/prims/jni.cpp:3678:14
          #13 0x7ff2ef6bcdc6 in InitializeJVM make/src/java.base/share/native/libjli/java.c:1507:9
          #14 0x7ff2ef6bcdc6 in JavaMain make/src/java.base/share/native/libjli/java.c:494:10
          #15 0x7ff2ef6cbd38 in ThreadJavaMain make/src/java.base/unix/native/libjli/java_md.c:646:29
          #16 0x7ff2ef6726e9 in start_thread (/lib64/libpthread.so.0+0xa6e9) (BuildId: 938e42b7e407d175ee3ef9a89c038168101d330c)

      Is it something serious or some kind of false positive ?
      I am using C/C++/LD flags -fsanitize=memory -fsanitize-memory-track-origins -fno-sanitize-memory-param-retval to get more info e.g. the origin tracking ( "Uninitialized value was stored to memory at ... " ) .

            aartemov Anton Artemov
            mbaesken Matthias Baesken
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

              Created:
              Updated: