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

NativeLibraryLoadEvent dtr fails with "assert(false) failed: Possible safepoint reached by thread that does not allow it"

    XMLWordPrintable

Details

    • Bug
    • Resolution: Duplicate
    • P4
    • 22
    • 22
    • hotspot
    • jfr
    • x86_64, aarch64
    • linux, windows

    Description

      The following test failed in the JDK22 CI:

      vmTestbase/nsk/jvmti/AttachOnDemand/attach024/TestDescription.java

      Here's a snippet from the log file:

      #section:main
      ----------messages:(6/1213)----------
      command: main nsk.share.aod.AODTestRunner -jdk /opt/mach5/mesos/work_dir/jib-master/install/jdk-22+15-1055/linux-x64-debug.jdk/jdk-22/fastdebug -javaOpts="--add-reads java.base=ALL-UNNAMED -XX:+UsePerfData -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/20/36/bundles/linux-x64/jdk-20_linux-x64_bin.tar.gz/jdk-20 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S168370/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/dd493145-f2a1-449b-925d-f900b354e277/runs/6b5c7f31-b0a7-40ef-b32a-bf3c21f1850f/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick/tmp -XX:StartFlightRecording=dumponexit=true" -target nsk.share.aod.TargetApplicationWaitingAgents -ja attach024Agent00.jar
      reason: User specified action: run main/othervm nsk.share.aod.AODTestRunner -jdk ${test.jdk} -javaOpts="--add-reads java.base=ALL-UNNAMED -XX:+UsePerfData ${test.vm.opts} ${test.java.opts}" -target nsk.share.aod.TargetApplicationWaitingAgents -ja attach024Agent00.jar
      started: Fri Sep 08 01:53:18 UTC 2023
      Mode: othervm [/othervm specified]
      finished: Fri Sep 08 01:53:36 UTC 2023
      elapsed time (seconds): 17.787
      ----------configuration:(0/0)----------
      ----------System.out:(75/6980)----------
      [2.807s][info][jfr,startup] Started recording 1. No limit specified, using maxsize=250MB as default.
      [2.807s][info][jfr,startup]
      [2.807s][info][jfr,startup] Use jcmd 3467483 JFR.dump name=1 filename=FILEPATH to copy recording data to file.
      Starting target application: /opt/mach5/mesos/work_dir/jib-master/install/jdk-22+15-1055/linux-x64-debug.jdk/jdk-22/fastdebug/bin/java -Dvmsqe.aod.AppId=3467483 --add-reads java.base=ALL-UNNAMED -XX:+UsePerfData -XX:MaxRAMPercentage=4.16667 -Dtest.boot.jdk=/opt/mach5/mesos/work_dir/jib-master/install/jdk/20/36/bundles/linux-x64/jdk-20_linux-x64_bin.tar.gz/jdk-20 -Djava.io.tmpdir=/opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S168370/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/dd493145-f2a1-449b-925d-f900b354e277/runs/6b5c7f31-b0a7-40ef-b32a-bf3c21f1850f/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick/tmp -XX:StartFlightRecording=dumponexit=true -XX:+EnableDynamicAgentLoading nsk.share.aod.TargetApplicationWaitingAgents -agentsNumber 1 -port 35275
      TargetApp (stdout): [2.627s][info][jfr,startup] Started recording 1. No limit specified, using maxsize=250MB as default.
      TargetApp (stdout): [2.627s][info][jfr,startup]
      TargetApp (stdout): [2.627s][info][jfr,startup] Use jcmd 3467672 JFR.dump name=1 filename=FILEPATH to copy recording data to file.
      TargetApp (stdout): Sending signal 'ready'
      TargetApp (stdout): Waiting for agents connection
      Signal received: 'ready'
      Target VM id was identified: 3467672
      Trying to get VirtualMachine object
      VirtualMachine was created: sun.tools.attach.AttachProviderImpl@7c6b5a3f: 3467672
      Trying to load jar agent: 'attach024Agent00.jar' (agent options: '-agentName=JarAgent-0')
      TargetApp (stdout): Locks owned:
      TargetApp (stdout): Mutex: [0x00007fd4c7d49e78] Zip_lock - owner: 0x00007fd438001160 allow_vm_block nosafepoint-1
      TargetApp (stdout): #
      TargetApp (stdout): # A fatal error has been detected by the Java Runtime Environment:
      TargetApp (stdout): #
      TargetApp (stdout): # Internal Error (/opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S141887/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/0ee38d9f-17c4-405a-821b-933df6ced177/runs/fa725739-c25b-44fa-8c2a-c65588e3f017/workspace/open/src/hotspot/share/runtime/javaThread.cpp:363), pid=3467672, tid=3467912
      TargetApp (stdout): # assert(false) failed: Possible safepoint reached by thread that does not allow it
      TargetApp (stdout): #
      TargetApp (stdout): # JRE version: Java(TM) SE Runtime Environment (22.0+15) (fastdebug build 22-ea+15-1055)
      TargetApp (stdout): # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 22-ea+15-1055, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, linux-amd64)
      TargetApp (stdout): # Problematic frame:
      TargetApp (stdout): # V [libjvm.so+0xeb4a48] JavaThread::check_possible_safepoint() [clone .part.0]+0x28
      TargetApp (stdout): #
      TargetApp (stdout): # Core dump will be written. Default location: Core dumps may be processed with "/opt/core.sh %p" (or dumping to /opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S168370/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/dd493145-f2a1-449b-925d-f900b354e277/runs/6b5c7f31-b0a7-40ef-b32a-bf3c21f1850f/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick/scratch/5/core.3467672)
      TargetApp (stdout): #
      TargetApp (stdout): # JFR recording file will be written. Location: /opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S168370/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/dd493145-f2a1-449b-925d-f900b354e277/runs/6b5c7f31-b0a7-40ef-b32a-bf3c21f1850f/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick/scratch/5/hs_err_pid3467672.jfr
      TargetApp (stdout): #
      TargetApp (stdout): # An error report file with more information is saved as:
      TargetApp (stdout): # /opt/mach5/mesos/work_dir/slaves/cd627e65-f015-4fb1-a1d2-b6c9b8127f98-S168370/frameworks/1735e8a2-a1db-478c-8104-60c8b0af87dd-0196/executors/dd493145-f2a1-449b-925d-f900b354e277/runs/6b5c7f31-b0a7-40ef-b32a-bf3c21f1850f/testoutput/test-support/jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick/scratch/5/hs_err_pid3467672.log
      TargetApp (stdout): #
      TargetApp (stdout): # If you would like to submit a bug report, please visit:
      TargetApp (stdout): # https://bugreport.java.com/bugreport/crash.jsp
      TargetApp (stdout): #
      # ERROR: Unexpected IOException during agent loading: java.io.IOException: Premature EOF
      The following stacktrace is for failure analysis.
      nsk.share.TestFailure: Unexpected IOException during agent loading: java.io.IOException: Premature EOF
      at nsk.share.Log.logExceptionForFailureAnalysis(Log.java:431)
      at nsk.share.Log.complain(Log.java:402)
      at nsk.share.aod.AgentsAttacher.tryToLoadAgent(AgentsAttacher.java:118)
      at nsk.share.aod.AgentsAttacher.attachAgents(AgentsAttacher.java:70)
      at nsk.share.aod.AODTestRunner.doTestActions(AODTestRunner.java:85)
      at nsk.share.aod.AODTestRunner.runTest(AODTestRunner.java:137)
      at nsk.share.aod.AODTestRunner.main(AODTestRunner.java:184)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
      at java.base/java.lang.Thread.run(Thread.java:1570)
      java.io.IOException: Premature EOF
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:347)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.processCompletionStatus(HotSpotVirtualMachine.java:381)
      at jdk.attach/sun.tools.attach.VirtualMachineImpl.execute(VirtualMachineImpl.java:187)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:99)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:124)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:152)
      at nsk.share.aod.AgentsAttacher.tryToLoadAgent(AgentsAttacher.java:90)
      at nsk.share.aod.AgentsAttacher.attachAgents(AgentsAttacher.java:70)
      at nsk.share.aod.AODTestRunner.doTestActions(AODTestRunner.java:85)
      at nsk.share.aod.AODTestRunner.runTest(AODTestRunner.java:137)
      at nsk.share.aod.AODTestRunner.main(AODTestRunner.java:184)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
      at java.base/java.lang.Thread.run(Thread.java:1570)
      Detaching from the VM 'sun.tools.attach.AttachProviderImpl@7c6b5a3f: 3467672'


      #>
      #> SUMMARY: Following errors occured
      #> during test execution:
      #>
      # ERROR: Unexpected IOException during agent loading: java.io.IOException: Premature EOF
      ----------System.err:(25/1747)----------
      nsk.share.Failure: Couldn't attach agent to the target application
      at nsk.share.aod.AgentsAttacher.failed(AgentsAttacher.java:135)
      at nsk.share.aod.AgentsAttacher.tryToLoadAgent(AgentsAttacher.java:124)
      at nsk.share.aod.AgentsAttacher.attachAgents(AgentsAttacher.java:70)
      at nsk.share.aod.AODTestRunner.doTestActions(AODTestRunner.java:85)
      at nsk.share.aod.AODTestRunner.runTest(AODTestRunner.java:137)
      at nsk.share.aod.AODTestRunner.main(AODTestRunner.java:184)
      at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
      at java.base/java.lang.reflect.Method.invoke(Method.java:580)
      at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
      at java.base/java.lang.Thread.run(Thread.java:1570)
      Caused by: java.io.IOException: Premature EOF
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.readInt(HotSpotVirtualMachine.java:347)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.processCompletionStatus(HotSpotVirtualMachine.java:381)
      at jdk.attach/sun.tools.attach.VirtualMachineImpl.execute(VirtualMachineImpl.java:187)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:99)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgentLibrary(HotSpotVirtualMachine.java:124)
      at jdk.attach/sun.tools.attach.HotSpotVirtualMachine.loadAgent(HotSpotVirtualMachine.java:152)
      at nsk.share.aod.AgentsAttacher.tryToLoadAgent(AgentsAttacher.java:90)
      ... 8 more

      JavaTest Message: Test threw exception: nsk.share.Failure: Couldn't attach agent to the target application
      JavaTest Message: shutting down test

      STATUS:Failed.`main' threw exception: nsk.share.Failure: Couldn't attach agent to the target application
      ----------rerun:(34/9456)*----------


      Here's the crashing thread's stack trace:

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

      Current thread (0x00007fd438001160): JavaThread "Attach Listener" daemon [_thread_in_vm, id=3467912, stack(0x00007fd48f976000,0x00007fd48fa76000) (1024K)]

      Stack: [0x00007fd48f976000,0x00007fd48fa76000], sp=0x00007fd48fa73120, free space=1012k
      Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
      V [libjvm.so+0xeb4a48] JavaThread::check_possible_safepoint() [clone .part.0]+0x28 (javaThread.cpp:363)
      V [libjvm.so+0xeb6a41] JavaThread::check_possible_safepoint()+0x51 (javaThread.cpp:363)
      V [libjvm.so+0xf15714] NativeLibraryLoadEvent::~NativeLibraryLoadEvent()+0x284 (safepointMechanism.inline.hpp:80)
      V [libjvm.so+0x14a41cf] os::Linux::dlopen_helper(char const*, char*, int)+0x7f (os_linux.cpp:1819)
      V [libjvm.so+0x14a44c1] os::dll_load(char const*, char*, int)+0x61 (os_linux.cpp:1598)
      V [libjvm.so+0x968e44] ClassLoader::load_zip_library()+0x174 (classLoader.cpp:953)
      V [libjvm.so+0x96922f] ClassLoader::open_zip_file(char const*, char**, JavaThread*)+0x2af (classLoader.cpp:943)
      V [libjvm.so+0x96b329] ClassLoader::create_class_path_zip_entry(char const*, bool)+0xc9 (classLoader.cpp:777)
      V [libjvm.so+0x1161f39] JvmtiEnv::AddToSystemClassLoaderSearch(char const*)+0x69 (jvmtiEnv.cpp:712)
      V [libjvm.so+0x11000cf] jvmti_AddToSystemClassLoaderSearch+0xef (jvmtiEnter.cpp:5968)
      C [libinstrument.so+0x207d] appendClassPath.isra.0+0xd (InvocationAdapter.c:793)
      C [libinstrument.so+0x2ce0] Agent_OnAttach+0x110 (InvocationAdapter.c:361)
      V [libjvm.so+0x10f3396] JvmtiAgent::load(outputStream*)+0x9f6 (jvmtiAgent.cpp:550)
      V [libjvm.so+0x10f4a5c] JvmtiAgentList::load_agent(char const*, char const*, char const*, outputStream*)+0x6c (jvmtiAgentList.cpp:206)
      V [libjvm.so+0x6b3e1f] AttachListenerThread::thread_entry(JavaThread*, JavaThread*)+0x27f (attachListener.cpp:413)
      V [libjvm.so+0xeb730c] JavaThread::thread_main_inner()+0xcc (javaThread.cpp:720)
      V [libjvm.so+0x17a26ea] Thread::call_run()+0xba (thread.cpp:220)
      V [libjvm.so+0x14a36ca] thread_native_entry(Thread*)+0x12a (os_linux.cpp:786)


      This test failure first happened in jdk-22+15-1055-tier5 which includes
      this fix:

      JDK-8315220 Event NativeLibraryLoad breaks invariant by taking a stacktrace when thread is in state _thread_in_native

      Attachments

        Issue Links

          Activity

            People

              mgronlun Markus Grönlund
              dcubed Daniel Daugherty
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: