-
Bug
-
Resolution: Cannot Reproduce
-
P4
-
None
-
6
-
x86
-
linux
FULL PRODUCT VERSION :
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_02-b05, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux dagobert 2.6.16.27-0.9-default #1 Tue Feb 13 09:35:18 UTC 2007 x86_64 x86_64 x86_64 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
X server: xorg-x11-6.9.0-50.17
Window manager: fvwm2-2.5.12-18
A DESCRIPTION OF THE PROBLEM :
Initiating a drag operation may completely lock up the X server, making all X applications completely unresponsive. Only killing the Java VM from the console unlocks X.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
The bug so far is only reproducible in a somewhat complex application.We spent four hours trying to produce a simple example reproducing it, but didn't succeed.
However, from the thread dump in frozen state (see below) it is obvious that an XSync() call never returns, locking up the AWT thread and X because of a grabbed server.
Analyzing the code around the traceback reveals that the sequence
XGrabServer()
XCreateWindow()
XMapWindow()
XSync()
in sun.awt.X11.MotifDnDConstants.createMotifWindow() leads to the lockup. We assume that under some circumstances XMapWindow() does not succeed with a grabbed server.
Everything works fine if createMotifWindow() is not executed, e.g. if the DnD window already exists. This coincides with the observation that once a successful drag has been made in a simple Java app, the problem disappears until X is restarted.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Starting a drag should not lock X.
ACTUAL -
Starting a drag locks X.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
2007-07-09 09:40:35
Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.6.0_02-b05 mixed mode):
"TimerQueue" daemon prio=10 tid=0x00002aaaba687400 nid=0xdf5 in Object.wait() [0x0000000041b3c000..0x0000000041b3cd20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaaaea0a7f0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:236)
- locked <0x00002aaaaea0a7f0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:619)
"DestroyJavaVM" prio=10 tid=0x00002aaaab00c400 nid=0xde4 waiting on condition [0x0000000000000000..0x0000000040a2bd90]
java.lang.Thread.State: RUNNABLE
"Timer-0" daemon prio=10 tid=0x00002aaaba5fb000 nid=0xdf4 in Object.wait() [0x0000000041a3b000..0x0000000041a3bba0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab07a9b98> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x00002aaab07a9b98> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"Thread-2" daemon prio=10 tid=0x00002aaabad84400 nid=0xdf3 waiting on condition [0x000000004193a000..0x000000004193ac20]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab0759bf0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
at ch.infox.gui.SlowTask$1.run(SlowTask.java:132)
"Thread-1" daemon prio=10 tid=0x00002aaab9dc0000 nid=0xdf2 waiting on condition [0x0000000041839000..0x0000000041839aa0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab05568e0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
at ch.infox.gui.SlowAction$1.run(SlowAction.java:74)
"AWT-EventQueue-0" prio=10 tid=0x00002aaab93d3000 nid=0xdf1 runnable [0x0000000041737000..0x0000000041738b20]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XlibWrapper.XSync(Native Method)
at sun.awt.X11.XToolkit.XSync(XToolkit.java:965)
at sun.awt.X11.XToolkit.WITH_XERROR_HANDLER(XToolkit.java:111)
at sun.awt.X11.MotifDnDConstants.createMotifWindow(MotifDnDConstants.java:174)
at sun.awt.X11.MotifDnDConstants.getMotifWindow(MotifDnDConstants.java:210)
at sun.awt.X11.MotifDnDConstants.getIndexForTargetList(MotifDnDConstants.java:429)
at sun.awt.X11.MotifDnDDragSourceProtocol.initializeDragImpl(MotifDnDDragSourceProtocol.java:58)
at sun.awt.X11.XDragSourceProtocol.initializeDrag(XDragSourceProtocol.java:79)
at sun.awt.X11.XDragSourceContextPeer.startDrag(XDragSourceContextPeer.java:153)
at sun.awt.dnd.SunDragSourceContextPeer.startDrag(SunDragSourceContextPeer.java:111)
at java.awt.dnd.DragSource.startDrag(DragSource.java:306)
at java.awt.dnd.DragSource.startDrag(DragSource.java:403)
at java.awt.dnd.DragGestureEvent.startDrag(DragGestureEvent.java:223)
at javax.swing.TransferHandler$DragHandler.dragGestureRecognized(TransferHandler.java:1530)
at java.awt.dnd.DragGestureRecognizer.fireDragGestureRecognized(DragGestureRecognizer.java:339)
- locked <0x00002aaaaec2ee70> (a javax.swing.TransferHandler$SwingDragGestureRecognizer)
at javax.swing.TransferHandler$SwingDragGestureRecognizer.gestured(TransferHandler.java:1588)
at javax.swing.TransferHandler.exportAsDrag(TransferHandler.java:663)
at javax.swing.plaf.basic.DragRecognitionSupport.mouseDraggedImpl(DragRecognitionSupport.java:160)
at javax.swing.plaf.basic.DragRecognitionSupport.mouseDragged(DragRecognitionSupport.java:76)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mouseDragged(BasicTreeUI.java:3542)
at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:302)
at java.awt.Component.processMouseMotionEvent(Component.java:6086)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3283)
at java.awt.Component.processEvent(Component.java:5807)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4003)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"AWT-Shutdown" prio=10 tid=0x00002aaab93d2800 nid=0xdf0 in Object.wait() [0x0000000041637000..0x0000000041637da0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9430> (a java.lang.Object)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x00002aaab04e9430> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"AWT-XAWT" daemon prio=10 tid=0x00002aaab94c5000 nid=0xdee waiting on condition [0x0000000041435000..0x0000000041435ca0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab050cc00> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
at sun.awt.SunToolkit.awtLock(SunToolkit.java:245)
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:544)
at sun.awt.X11.XToolkit.run(XToolkit.java:519)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0x00002aaab930a800 nid=0xded in Object.wait() [0x0000000041334000..0x0000000041334d20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e95d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x00002aaab04e95d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=10 tid=0x00002aaab9320000 nid=0xdeb runnable [0x0000000000000000..0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=10 tid=0x00002aaab931e000 nid=0xdea waiting on condition [0x0000000000000000..0x0000000041030a90]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x00002aaab931c800 nid=0xde9 waiting on condition [0x0000000000000000..0x0000000040f2fb20]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x00002aaab931ac00 nid=0xde8 runnable [0x0000000000000000..0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x00002aaab92f8c00 nid=0xde7 in Object.wait() [0x0000000040d2e000..0x0000000040d2ee20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9960> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x00002aaab04e9960> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00002aaab92f8400 nid=0xde6 in Object.wait() [0x0000000040c2d000..0x0000000040c2dca0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9480> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x00002aaab04e9480> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x00002aaaab0f1400 nid=0xde5 runnable
"VM Periodic Task Thread" prio=10 tid=0x00002aaab9322000 nid=0xdec waiting on condition
JNI global references: 857
Heap
def new generation total 10368K, used 4859K [0x00002aaaae890000, 0x00002aaaaf3c0000, 0x00002aaab0490000)
eden space 9280K, 40% used [0x00002aaaae890000, 0x00002aaaaec3ece0, 0x00002aaaaf1a0000)
from space 1088K, 100% used [0x00002aaaaf2b0000, 0x00002aaaaf3c0000, 0x00002aaaaf3c0000)
to space 1088K, 0% used [0x00002aaaaf1a0000, 0x00002aaaaf1a0000, 0x00002aaaaf2b0000)
tenured generation total 22796K, used 20052K [0x00002aaab0490000, 0x00002aaab1ad3000, 0x00002aaab3c90000)
the space 22796K, 87% used [0x00002aaab0490000, 0x00002aaab1825358, 0x00002aaab1825400, 0x00002aaab1ad3000)
compacting perm gen total 21248K, used 19470K [0x00002aaab3c90000, 0x00002aaab5150000, 0x00002aaab9090000)
the space 21248K, 91% used [0x00002aaab3c90000, 0x00002aaab4f93b80, 0x00002aaab4f93c00, 0x00002aaab5150000)
No shared spaces configured.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Unfortunately not available so far.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Removing the calls to XGrabServer() and XUngrabServer() in sun.awt.X11.MotifDnDConstants.createMotifWindow() resolves the problem. We therefore now apply a corresponding patch to jre/lib/rt.jar to all our JVM installations.
java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b05)
Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_02-b05, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Linux dagobert 2.6.16.27-0.9-default #1 Tue Feb 13 09:35:18 UTC 2007 x86_64 x86_64 x86_64 GNU/Linux
EXTRA RELEVANT SYSTEM CONFIGURATION :
X server: xorg-x11-6.9.0-50.17
Window manager: fvwm2-2.5.12-18
A DESCRIPTION OF THE PROBLEM :
Initiating a drag operation may completely lock up the X server, making all X applications completely unresponsive. Only killing the Java VM from the console unlocks X.
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
The bug so far is only reproducible in a somewhat complex application.We spent four hours trying to produce a simple example reproducing it, but didn't succeed.
However, from the thread dump in frozen state (see below) it is obvious that an XSync() call never returns, locking up the AWT thread and X because of a grabbed server.
Analyzing the code around the traceback reveals that the sequence
XGrabServer()
XCreateWindow()
XMapWindow()
XSync()
in sun.awt.X11.MotifDnDConstants.createMotifWindow() leads to the lockup. We assume that under some circumstances XMapWindow() does not succeed with a grabbed server.
Everything works fine if createMotifWindow() is not executed, e.g. if the DnD window already exists. This coincides with the observation that once a successful drag has been made in a simple Java app, the problem disappears until X is restarted.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Starting a drag should not lock X.
ACTUAL -
Starting a drag locks X.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
2007-07-09 09:40:35
Full thread dump Java HotSpot(TM) 64-Bit Server VM (1.6.0_02-b05 mixed mode):
"TimerQueue" daemon prio=10 tid=0x00002aaaba687400 nid=0xdf5 in Object.wait() [0x0000000041b3c000..0x0000000041b3cd20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaaaea0a7f0> (a javax.swing.TimerQueue)
at javax.swing.TimerQueue.run(TimerQueue.java:236)
- locked <0x00002aaaaea0a7f0> (a javax.swing.TimerQueue)
at java.lang.Thread.run(Thread.java:619)
"DestroyJavaVM" prio=10 tid=0x00002aaaab00c400 nid=0xde4 waiting on condition [0x0000000000000000..0x0000000040a2bd90]
java.lang.Thread.State: RUNNABLE
"Timer-0" daemon prio=10 tid=0x00002aaaba5fb000 nid=0xdf4 in Object.wait() [0x0000000041a3b000..0x0000000041a3bba0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab07a9b98> (a java.util.TaskQueue)
at java.lang.Object.wait(Object.java:485)
at java.util.TimerThread.mainLoop(Timer.java:483)
- locked <0x00002aaab07a9b98> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:462)
"Thread-2" daemon prio=10 tid=0x00002aaabad84400 nid=0xdf3 waiting on condition [0x000000004193a000..0x000000004193ac20]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab0759bf0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
at ch.infox.gui.SlowTask$1.run(SlowTask.java:132)
"Thread-1" daemon prio=10 tid=0x00002aaab9dc0000 nid=0xdf2 waiting on condition [0x0000000041839000..0x0000000041839aa0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab05568e0> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
at java.util.concurrent.ArrayBlockingQueue.take(ArrayBlockingQueue.java:317)
at ch.infox.gui.SlowAction$1.run(SlowAction.java:74)
"AWT-EventQueue-0" prio=10 tid=0x00002aaab93d3000 nid=0xdf1 runnable [0x0000000041737000..0x0000000041738b20]
java.lang.Thread.State: RUNNABLE
at sun.awt.X11.XlibWrapper.XSync(Native Method)
at sun.awt.X11.XToolkit.XSync(XToolkit.java:965)
at sun.awt.X11.XToolkit.WITH_XERROR_HANDLER(XToolkit.java:111)
at sun.awt.X11.MotifDnDConstants.createMotifWindow(MotifDnDConstants.java:174)
at sun.awt.X11.MotifDnDConstants.getMotifWindow(MotifDnDConstants.java:210)
at sun.awt.X11.MotifDnDConstants.getIndexForTargetList(MotifDnDConstants.java:429)
at sun.awt.X11.MotifDnDDragSourceProtocol.initializeDragImpl(MotifDnDDragSourceProtocol.java:58)
at sun.awt.X11.XDragSourceProtocol.initializeDrag(XDragSourceProtocol.java:79)
at sun.awt.X11.XDragSourceContextPeer.startDrag(XDragSourceContextPeer.java:153)
at sun.awt.dnd.SunDragSourceContextPeer.startDrag(SunDragSourceContextPeer.java:111)
at java.awt.dnd.DragSource.startDrag(DragSource.java:306)
at java.awt.dnd.DragSource.startDrag(DragSource.java:403)
at java.awt.dnd.DragGestureEvent.startDrag(DragGestureEvent.java:223)
at javax.swing.TransferHandler$DragHandler.dragGestureRecognized(TransferHandler.java:1530)
at java.awt.dnd.DragGestureRecognizer.fireDragGestureRecognized(DragGestureRecognizer.java:339)
- locked <0x00002aaaaec2ee70> (a javax.swing.TransferHandler$SwingDragGestureRecognizer)
at javax.swing.TransferHandler$SwingDragGestureRecognizer.gestured(TransferHandler.java:1588)
at javax.swing.TransferHandler.exportAsDrag(TransferHandler.java:663)
at javax.swing.plaf.basic.DragRecognitionSupport.mouseDraggedImpl(DragRecognitionSupport.java:160)
at javax.swing.plaf.basic.DragRecognitionSupport.mouseDragged(DragRecognitionSupport.java:76)
at javax.swing.plaf.basic.BasicTreeUI$Handler.mouseDragged(BasicTreeUI.java:3542)
at java.awt.AWTEventMulticaster.mouseDragged(AWTEventMulticaster.java:302)
at java.awt.Component.processMouseMotionEvent(Component.java:6086)
at javax.swing.JComponent.processMouseMotionEvent(JComponent.java:3283)
at java.awt.Component.processEvent(Component.java:5807)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4003)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
"AWT-Shutdown" prio=10 tid=0x00002aaab93d2800 nid=0xdf0 in Object.wait() [0x0000000041637000..0x0000000041637da0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9430> (a java.lang.Object)
at java.lang.Object.wait(Object.java:485)
at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
- locked <0x00002aaab04e9430> (a java.lang.Object)
at java.lang.Thread.run(Thread.java:619)
"AWT-XAWT" daemon prio=10 tid=0x00002aaab94c5000 nid=0xdee waiting on condition [0x0000000041435000..0x0000000041435ca0]
java.lang.Thread.State: WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00002aaab050cc00> (a java.util.concurrent.locks.ReentrantLock$NonfairSync)
at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778)
at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1114)
at java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:186)
at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:262)
at sun.awt.SunToolkit.awtLock(SunToolkit.java:245)
at sun.awt.X11.XToolkit.waitForEvents(Native Method)
at sun.awt.X11.XToolkit.run(XToolkit.java:544)
at sun.awt.X11.XToolkit.run(XToolkit.java:519)
at java.lang.Thread.run(Thread.java:619)
"Java2D Disposer" daemon prio=10 tid=0x00002aaab930a800 nid=0xded in Object.wait() [0x0000000041334000..0x0000000041334d20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e95d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x00002aaab04e95d0> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at sun.java2d.Disposer.run(Disposer.java:125)
at java.lang.Thread.run(Thread.java:619)
"Low Memory Detector" daemon prio=10 tid=0x00002aaab9320000 nid=0xdeb runnable [0x0000000000000000..0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"CompilerThread1" daemon prio=10 tid=0x00002aaab931e000 nid=0xdea waiting on condition [0x0000000000000000..0x0000000041030a90]
java.lang.Thread.State: RUNNABLE
"CompilerThread0" daemon prio=10 tid=0x00002aaab931c800 nid=0xde9 waiting on condition [0x0000000000000000..0x0000000040f2fb20]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" daemon prio=10 tid=0x00002aaab931ac00 nid=0xde8 runnable [0x0000000000000000..0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" daemon prio=10 tid=0x00002aaab92f8c00 nid=0xde7 in Object.wait() [0x0000000040d2e000..0x0000000040d2ee20]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9960> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116)
- locked <0x00002aaab04e9960> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:132)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)
"Reference Handler" daemon prio=10 tid=0x00002aaab92f8400 nid=0xde6 in Object.wait() [0x0000000040c2d000..0x0000000040c2dca0]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x00002aaab04e9480> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:485)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
- locked <0x00002aaab04e9480> (a java.lang.ref.Reference$Lock)
"VM Thread" prio=10 tid=0x00002aaaab0f1400 nid=0xde5 runnable
"VM Periodic Task Thread" prio=10 tid=0x00002aaab9322000 nid=0xdec waiting on condition
JNI global references: 857
Heap
def new generation total 10368K, used 4859K [0x00002aaaae890000, 0x00002aaaaf3c0000, 0x00002aaab0490000)
eden space 9280K, 40% used [0x00002aaaae890000, 0x00002aaaaec3ece0, 0x00002aaaaf1a0000)
from space 1088K, 100% used [0x00002aaaaf2b0000, 0x00002aaaaf3c0000, 0x00002aaaaf3c0000)
to space 1088K, 0% used [0x00002aaaaf1a0000, 0x00002aaaaf1a0000, 0x00002aaaaf2b0000)
tenured generation total 22796K, used 20052K [0x00002aaab0490000, 0x00002aaab1ad3000, 0x00002aaab3c90000)
the space 22796K, 87% used [0x00002aaab0490000, 0x00002aaab1825358, 0x00002aaab1825400, 0x00002aaab1ad3000)
compacting perm gen total 21248K, used 19470K [0x00002aaab3c90000, 0x00002aaab5150000, 0x00002aaab9090000)
the space 21248K, 91% used [0x00002aaab3c90000, 0x00002aaab4f93b80, 0x00002aaab4f93c00, 0x00002aaab5150000)
No shared spaces configured.
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Unfortunately not available so far.
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
Removing the calls to XGrabServer() and XUngrabServer() in sun.awt.X11.MotifDnDConstants.createMotifWindow() resolves the problem. We therefore now apply a corresponding patch to jre/lib/rt.jar to all our JVM installations.
- relates to
-
JDK-6397447 Splash screen (-splash:splash.png) + text drag = KDE/GNOME freeze
-
- Resolved
-