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

JavaThread::java_suspend() fails with "fatal error: Illegal threadstate encountered: 6"

    XMLWordPrintable

    Details

    • Subcomponent:
    • Resolved In Build:
      b34
    • CPU:
      x86_64
    • OS:
      windows
    • Verification:
      Verified

      Backports

        Description

        The following test failed in the JDK17 CI:

        vmTestbase/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/hs202t002.java

        Here's a snippet from the log file:

        #section:main
        ----------messages:(4/436)----------
        command: main -agentlib:hs202t002=pathToNewByteCode=./bin,-waittime=5,package=nsk,samples=100,mode=compiled nsk.jvmti.scenarios.hotswap.HS202.hs202t002.hs202t002
        reason: User specified action: run main/othervm/native -agentlib:hs202t002=pathToNewByteCode=./bin,-waittime=5,package=nsk,samples=100,mode=compiled nsk.jvmti.scenarios.hotswap.HS202.hs202t002.hs202t002
        Mode: othervm [/othervm specified]
        elapsed time (seconds): 15.111
        ----------configuration:(0/0)----------
        ----------System.out:(26/1480)*----------
        Agent:: VM.. Started..
         Agent :: NOTIFICATIONS ARE ENABLED
        # info :: File = ./bin/newclass00/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/MyThread.class
        # info **Agent:: opening file ./bin/newclass00/nsk/jvmti/scenarios/hotswap/HS202/hs202t002/MyThread.class
        # info file size= 732
         File red completely
         Agent:: redefine class success ..
        Agent::SUSPENDING>>
        # To suppress the following error report, specify this argument
        # after -XX: or in .hotspotrc: SuppressErrorAt=\\safepoint.cpp:745
        #
        # A fatal error has been detected by the Java Runtime Environment:
        #
        # Internal Error (t:\\workspace\\open\\src\\hotspot\\share\\runtime\\safepoint.cpp:745), pid=43336, tid=12820
        # fatal error: Illegal threadstate encountered: 6
        #
        # JRE version: Java(TM) SE Runtime Environment (17.0+33) (fastdebug build 17-ea+33-LTS-2690)
        # Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 17-ea+33-LTS-2690, compiled mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
        # Core dump will be written. Default location: T:\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick\\scratch\\0\\hs_err_pid43336.mdmp
        #
        # An error report file with more information is saved as:
        # T:\\testoutput\\test-support\\jtreg_open_test_hotspot_jtreg_vmTestbase_nsk_jvmti_quick\\scratch\\0\\hs_err_pid43336.log
        #
        # If you would like to submit a bug report, please visit:
        # https://bugreport.java.com/bugreport/crash.jsp
        #
        ----------System.err:(0/0)----------
        ----------rerun:(49/7264)*----------


        Here's the crashing thread's stack:

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

        Current thread (0x000002a2cead3490): JavaThread "Thread-1" [_thread_in_vm, id=12820, stack(0x000000dba9700000,0x000000dba9800000)], _nested_threads_hazard_ptr_cnt=1, _nested_threads_hazard_ptr=0x000002a2cf0aa5a0

        Stack: [0x000000dba9700000,0x000000dba9800000]
        Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
        V [jvm.dll+0xadf271] os::platform_print_native_stack+0xf1 (os_windows_x86.cpp:235)
        V [jvm.dll+0xd06e55] VMError::report+0x1005 (vmError.cpp:739)
        V [jvm.dll+0xd087de] VMError::report_and_die+0x7fe (vmError.cpp:1549)
        V [jvm.dll+0x4c7e3e] report_fatal+0xde (debug.cpp:304)
        V [jvm.dll+0xb85255] SafepointSynchronize::block+0xc5 (safepoint.cpp:745)
        V [jvm.dll+0xb88ad2] SafepointMechanism::process+0x32 (safepointMechanism.cpp:134)
        V [jvm.dll+0x64dabd] HandshakeState::suspend+0x9d (handshake.cpp:693)
        V [jvm.dll+0xc8e2ec] JavaThread::java_suspend+0x6c (thread.cpp:1791)
        V [jvm.dll+0x8b1624] JvmtiEnv::SuspendThread+0x34 (jvmtiEnv.cpp:946)
        V [jvm.dll+0x86d3c0] jvmti_SuspendThread+0x160 (jvmtiEnter.cpp:536)
        C [hs202t002.dll+0x1f83]

        Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
        j nsk.jvmti.scenarios.hotswap.HS202.hs202t002.MyThread.display()V+19
        j nsk.jvmti.scenarios.hotswap.HS202.hs202t002.MyThread.playWithThis()V+1
        j nsk.jvmti.scenarios.hotswap.HS202.hs202t002.MyThread.run()V+1
        v ~StubRoutines::call_stub

        I *think* this failure is related to the recent integration of:

            JDK-8270085 Suspend during block transition may deadlock if lock held

        So far this failure has only been since once on Windows and
        it did not show up in my stress testing of JDK-8270085 prior
        to integration. Since this is a (possible) regression, I'm starting
        this bug at P2.

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                pchilanomate Patricio Chilano Mateo
                Reporter:
                dcubed Daniel Daugherty
                Votes:
                0 Vote for this issue
                Watchers:
                8 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: