<AWT Dev> hang when doing a fastdebug build

Pete Brunet peter.brunet at oracle.com
Mon Feb 20 10:22:26 PST 2012


There is something about a patch I am working on that results in a hang
when exiting an app with a fastdebug build but not with a product
build.  The results of ctrl+break follow.  Could someone look at this
and give me a hint as to what the deadlock is?  Thanks, Pete

Full thread dump OpenJDK Client VM (23.0-b11-fastdebug mixed mode):

"Thread-0" daemon prio=6 tid=0x0863ac00 nid=0x10c8 runnable [0x07d5f000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_in_native
Thread: 0x0863ac00  [0x10c8] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_in_native
        at sun.awt.windows.WToolkit.shutdown(Native Method)
        at sun.awt.windows.WToolkit.access$200(WToolkit.java:67)
        at sun.awt.windows.WToolkit$2$1.run(WToolkit.java:275)
        at java.lang.Thread.run(Thread.java:722)

"SwingWorker-pool-1-thread-1" daemon prio=6 tid=0x088c3800 nid=0x166c
waiting on condition [0x09d2f000]
   java.lang.Thread.State: WAITING (parking)
   JavaThread state: _thread_blocked
Thread: 0x088c3800  [0x166c] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x15ffc1e0> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
        at
java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
        at
java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1045)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1103)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)

"DestroyJavaVM" prio=6 tid=0x00ec9000 nid=0xfa0 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x00ec9000  [0xfa0] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked

"AWT-EventQueue-0" prio=6 tid=0x0581f800 nid=0x125c in Object.wait()
[0x084de000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
Thread: 0x0581f800  [0x125c] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at java.lang.Object.wait(Native Method)
        - waiting on <0x155c77e0> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1258)
        - locked <0x155c77e0> (a java.lang.Thread)
        at java.lang.Thread.join(Thread.java:1332)
        at
java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
        at
java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
        at java.lang.Shutdown.runHooks(Shutdown.java:123)
        at java.lang.Shutdown.sequence(Shutdown.java:167)
        at java.lang.Shutdown.exit(Shutdown.java:212)
        - locked <0x156be6b8> (a java.lang.Class for java.lang.Shutdown)
        at java.lang.Runtime.exit(Runtime.java:107)
        at java.lang.System.exit(System.java:961)
        at javax.swing.JFrame.processWindowEvent(JFrame.java:312)
        at java.awt.Window.processEvent(Window.java:2003)
        at java.awt.Component.dispatchEventImpl(Component.java:4866)
        at java.awt.Container.dispatchEventImpl(Container.java:2287)
        at java.awt.Window.dispatchEventImpl(Window.java:2713)
        at java.awt.Component.dispatchEvent(Component.java:4691)
        at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:703)
        at java.awt.EventQueue.access$000(EventQueue.java:102)
        at java.awt.EventQueue$3.run(EventQueue.java:662)
        at java.awt.EventQueue$3.run(EventQueue.java:660)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
        at java.awt.EventQueue$4.run(EventQueue.java:676)
        at java.awt.EventQueue$4.run(EventQueue.java:674)
        at java.security.AccessController.doPrivileged(Native Method)
        at
java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:673)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:216)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:135)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:123)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:119)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:111)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

"AWT-Shutdown" prio=6 tid=0x0581f400 nid=0x1bb0 in Object.wait()
[0x0837f000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
Thread: 0x0581f400  [0x1bb0] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at java.lang.Object.wait(Native Method)
        - waiting on <0x15596128> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:502)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:290)
        - locked <0x15596128> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:722)

"TimerQueue" daemon prio=6 tid=0x04df5400 nid=0x18a4 waiting on
condition [0x0862f000]
   java.lang.Thread.State: WAITING (parking)
   JavaThread state: _thread_blocked
Thread: 0x04df5400  [0x18a4] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x15684668> (a
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)
        at javax.swing.TimerQueue.run(TimerQueue.java:171)
        at java.lang.Thread.run(Thread.java:722)

"AWT-Windows" daemon prio=6 tid=0x056d7c00 nid=0x1658 runnable [0x05cff000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x056d7c00  [0x1658] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at sun.awt.windows.WToolkit.eventLoop(Native Method)
        at sun.awt.windows.WToolkit.run(WToolkit.java:299)
        at java.lang.Thread.run(Thread.java:722)

"Java2D Disposer" daemon prio=10 tid=0x04e04400 nid=0x478 in
Object.wait() [0x05b0f000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
Thread: 0x04e04400  [0x478] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at java.lang.Object.wait(Native Method)
        - waiting on <0x156847b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
        - locked <0x156847b0> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
        at sun.java2d.Disposer.run(Disposer.java:145)
        at java.lang.Thread.run(Thread.java:722)

"Service Thread" daemon prio=6 tid=0x04cf8800 nid=0x1bb8 runnable
[0x00000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x04cf8800  [0x1bb8] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked

"C1 CompilerThread0" daemon prio=10 tid=0x04cf2800 nid=0x598 waiting on
condition [0x00000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x04cf2800  [0x598] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked

"Attach Listener" daemon prio=10 tid=0x04cee000 nid=0x108 runnable
[0x00000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x04cee000  [0x108] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked

"Signal Dispatcher" daemon prio=10 tid=0x04ceac00 nid=0x1678 waiting on
condition [0x00000000]
   java.lang.Thread.State: RUNNABLE
   JavaThread state: _thread_blocked
Thread: 0x04ceac00  [0x1678] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked

"Finalizer" daemon prio=8 tid=0x04c35c00 nid=0x12b4 in Object.wait()
[0x04fef000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
Thread: 0x04c35c00  [0x12b4] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at java.lang.Object.wait(Native Method)
        - waiting on <0x15684a78> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
        - locked <0x15684a78> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

"Reference Handler" daemon prio=10 tid=0x04c30c00 nid=0xd48 in
Object.wait() [0x0100f000]
   java.lang.Thread.State: WAITING (on object monitor)
   JavaThread state: _thread_blocked
Thread: 0x04c30c00  [0xd48] State: _at_safepoint _has_called_back 0
_at_poll_safepoint 0
   JavaThread state: _thread_blocked
        at java.lang.Object.wait(Native Method)
        - waiting on <0x15684b00> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:142)
        - locked <0x15684b00> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x00f9fc00 nid=0x1a38 runnable

"VM Periodic Task Thread" prio=10 tid=0x04d09c00 nid=0x1aa0 waiting on
condition


Compiler thread printing unimplemented.

JNI global references: 569

Heap
 def new generation   total 13952K, used 13140K [0x10030000, 0x10f50000,
0x15580000)
  eden space 12416K,  98% used [0x10030000, 0x10c2e050, 0x10c50000)
  from space 1536K,  56% used [0x10c50000, 0x10d27328, 0x10dd0000)
  to   space 1536K,   0% used [0x10dd0000, 0x10dd0000, 0x10f50000)
 tenured generation   total 30860K, used 19177K [0x15580000, 0x173a3000,
0x20030000)
   the space 30860K,  62% used [0x15580000, 0x1683a478, 0x1683a600,
0x173a3000)
 compacting perm gen  total 12288K, used 11265K [0x20030000, 0x20c30000,
0x24030000)
   the space 12288K,  91% used [0x20030000, 0x20b30568, 0x20b30600,
0x20c30000)
No shared spaces configured.


C:\OpenJDK\jdk8\build\windows-i586-fastdebug>



More information about the awt-dev mailing list