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

jstack can get "stuck" with cores from cacao

XMLWordPrintable

    • generic
    • solaris

      gcore a java process (in my case from cacao)

      di64-x4450a-prg06<root># file /core.5692
      /core.5692: ELF 32-bit LSB core file 80386 Version 1, from 'java'
      di64-x4450a-prg06<root># /usr/jdk/instances/jdk1.6.0/bin/jstack -m /usr/jdk/instances/jdk1.6.0/bin/java /core.5692
      Attaching to core /core.5692 from executable /usr/jdk/instances/jdk1.6.0/bin/java, please wait...
      Debugger attached successfully.
      Server compiler detected.
      JVM version is 10.0-b23
      ^Cjava.lang.RuntimeException: VM.initialize() was not yet called
              at sun.jvm.hotspot.runtime.VM.getVM(VM.java:359)
              at sun.jvm.hotspot.code.CodeCache.findBlob(CodeCache.java:79)
              at sun.jvm.hotspot.runtime.Frame.isCompiledFrame(Frame.java:141)
              at sun.jvm.hotspot.runtime.Frame.isJavaFrame(Frame.java:121)
              at sun.jvm.hotspot.runtime.Frame.isFirstFrame(Frame.java:164)
              at sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:116)
              at sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:151)
              at sun.jvm.hotspot.tools.PStack.initJFrameCache(PStack.java:208)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:66)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:53)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:48)
              at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
              at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
              at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at sun.tools.jstack.JStack.runJStackTool(JStack.java:118)
              at sun.tools.jstack.JStack.main(JStack.java:84)
      Exception in thread "main" java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at sun.tools.jstack.JStack.runJStackTool(JStack.java:118)
              at sun.tools.jstack.JStack.main(JStack.java:84)
      Caused by: java.lang.RuntimeException: VM.initialize() was not yet called
              at sun.jvm.hotspot.runtime.VM.getVM(VM.java:359)
              at sun.jvm.hotspot.runtime.solaris_x86.SolarisX86JavaThreadPDAccess.getThreadProxy(SolarisX86JavaThreadPDAccess.java:136)
              at sun.jvm.hotspot.runtime.JavaThread.getThreadProxy(JavaThread.java:272)
              at sun.jvm.hotspot.tools.PStack.initJFrameCache(PStack.java:218)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:66)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:53)
              at sun.jvm.hotspot.tools.PStack.run(PStack.java:48)
              at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
              at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
              at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
              ... 6 more


      as you noticed I had to break the jstack using CTRL+C since it was just "stuck"

      BUT
      if I do :

      di64-x4450a-prg06<root># /usr/jdk/instances/jdk1.6.0/bin/jsadebugd /usr/jdk/instances/jdk1.6.0/bin/java /core.5692
      Attaching to core /core.5692 from executable /usr/jdk/instances/jdk1.6.0/bin/java and starting RMI services, please wait...
      Debugger attached and RMI services started.
      ^Z
      [1]+ Stopped /usr/jdk/instances/jdk1.6.0/bin/jsadebugd /usr/jdk/instances/jdk1.6.0/bin/java /core.5692
      di64-x4450a-prg06<root># bg
      [1]+ /usr/jdk/instances/jdk1.6.0/bin/jsadebugd /usr/jdk/instances/jdk1.6.0/bin/java /core.5692 &

      di64-x4450a-prg06<root># /usr/jdk/instances/jdk1.6.0/bin/jstack localhost
      Attaching to remote server localhost, please wait...
      Debugger attached successfully.
      Server compiler detected.
      JVM version is 10.0-b23
      Deadlock Detection:

      No deadlocks found.

      Thread t@ 1616: (state = BLOCKED)
       - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
       - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20, line=198 (Compiled frame)
       - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=68, line=1963 (Compiled frame)
       - java.util.concurrent.LinkedBlockingQueue.poll(long, java.util.concurrent.TimeUnit) @bci=93, line=395 (Interpreted frame)
       - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=62, line=944 (Interpreted frame)
       - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=906 (Interpreted frame)
       - java.lang.Thread.run() @bci=11, line=619 (Interpreted frame)


      Thread t@ 1615: (state = BLOCKED)
       - sun.misc.Unsafe.park(boolean, long) @bci=0 (Interpreted frame)
       - java.util.concurrent.locks.LockSupport.parkNanos(java.lang.Object, long) @bci=20, line=198 (Compiled frame)
       - java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(long) @bci=68, line=1963 (Compiled frame)
       - java.util.concurrent.LinkedBlockingQueue.poll(long, java.util.concurrent.TimeUnit) @bci=93, line=395 (Interpreted frame)
       - java.util.concurrent.ThreadPoolExecutor.getTask() @bci=62, line=944 (Interpreted frame)
       - java.util.concurrent.ThreadPoolExecutor$Worker.run() @bci=18, line=906 (Interpreted frame)
       - java.lang.Thread.run() @bci=11, line=619 (Interpreted frame)

      .....

      THEN jstack get's a bit further, BUT eventually gets stuck again:

      Thread t@ 13: (state = BLOCKED)
       - java.lang.Object.wait(long) @bci=0 (Interpreted frame)
       - java.lang.ref.ReferenceQueue.remove(long) @bci=44, line=116 (Compiled frame)
       - java.lang.ref.ReferenceQueue.remove() @bci=2, line=132 (Compiled frame)
       - java.lang.ref.Finalizer$FinalizerThread.run() @bci=3, line=159 (Compiled frame)


      ^CError occurred during stack walking:
      java.lang.RuntimeException: VM.initialize() was not yet called
              at sun.jvm.hotspot.runtime.VM.getVM(VM.java:359)
              at sun.jvm.hotspot.code.CodeCache.findBlob(CodeCache.java:79)
              at sun.jvm.hotspot.runtime.x86.X86Frame.adjustForDeopt(X86Frame.java:102)
              at sun.jvm.hotspot.runtime.x86.X86Frame.<init>(X86Frame.java:124)
              at sun.jvm.hotspot.runtime.x86.X86Frame.senderForCompiledFrame(X86Frame.java:373)
              at sun.jvm.hotspot.runtime.x86.X86Frame.sender(X86Frame.java:283)
              at sun.jvm.hotspot.runtime.Frame.sender(Frame.java:194)
              at sun.jvm.hotspot.runtime.Frame.realSender(Frame.java:199)
              at sun.jvm.hotspot.runtime.VFrame.sender(VFrame.java:119)
              at sun.jvm.hotspot.runtime.VFrame.javaSender(VFrame.java:151)
              at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:76)
              at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
              at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
              at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
              at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at sun.tools.jstack.JStack.runJStackTool(JStack.java:118)
              at sun.tools.jstack.JStack.main(JStack.java:84)

      Exception in thread "main" java.lang.reflect.InvocationTargetException
              at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
              at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
              at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
              at java.lang.reflect.Method.invoke(Method.java:597)
              at sun.tools.jstack.JStack.runJStackTool(JStack.java:118)
              at sun.tools.jstack.JStack.main(JStack.java:84)
      Caused by: java.lang.RuntimeException: VM.initialize() was not yet called
              at sun.jvm.hotspot.runtime.VM.getVM(VM.java:359)
              at sun.jvm.hotspot.runtime.JavaThread.next(JavaThread.java:114)
              at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:65)
              at sun.jvm.hotspot.tools.StackTrace.run(StackTrace.java:45)
              at sun.jvm.hotspot.tools.JStack.run(JStack.java:60)
              at sun.jvm.hotspot.tools.Tool.start(Tool.java:221)
              at sun.jvm.hotspot.tools.JStack.main(JStack.java:86)
              ... 6 more

      note that I pressed CTRL+C again

      if needed I can get you access to a machine for troubleshooting
      Moved to comments

            Unassigned Unassigned
            lkosco Luboš Košco (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: