Duplicate :
|
|
Relates :
|
|
Relates :
|
I am launching a test which creates a frame using different GCs available and pushes the frame into fullscreen mode. This is repeated for all GDs as well. When I run this on SuSE10 having Nvidia Geforce FX5900 with the latest Nvidia Driver - 9746, the test hangs immediately after the launch (after bringing up the first fullscreen frame). I pressed CTRL + '\' and the thread dump showed that there is a java level deadlock. I have given the thread dump below. This is not reproducible on JDK7-b07 but reproducible on JDK7-b08. I tried on another SuSE10 machine with ATI Radeon 9600 and it was throwing a NPE (6529869). Not reproducible on Win32. I have attached a sample test. Launch the sample test on the above config and you would notice that the test hangs immediately after the launch. Here is the thread-dump: ------------------------ Full thread dump Java HotSpot(TM) Client VM (1.7.0-ea-b08 mixed mode): "AWT-Shutdown" prio=10 tid=0x4a6f9000 nid=0x1a38 in Object.wait() [0x4adca000..0x4adcafc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x42354a60> (a java.lang.Object) at java.lang.Object.wait(Object.java:485) at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:263) - locked <0x42354a60> (a java.lang.Object) at java.lang.Thread.run(Thread.java:619) "AWT-XAWT" daemon prio=10 tid=0x4a6dd400 nid=0x1a37 waiting for monitor entry [0x4ad79000..0x4ad79f40] java.lang.Thread.State: BLOCKED (on object monitor) at sun.awt.X11GraphicsDevice.getProxyKeyFor(X11GraphicsDevice.java:70) - waiting to lock <0x423f19f8> (a sun.awt.X11GraphicsDevice) at sun.awt.X11GraphicsConfig.getProxyKey(X11GraphicsConfig.java:166) at sun.java2d.x11.X11SurfaceData.<init>(X11SurfaceData.java:404) at sun.java2d.x11.X11SurfaceData$X11WindowSurfaceData.<init>(X11SurfaceData.java:665) at sun.java2d.x11.X11SurfaceData.createData(X11SurfaceData.java:370) at sun.awt.X11GraphicsConfig.createSurfaceData(X11GraphicsConfig.java:339) at sun.awt.X11.XWindow.validateSurface(XWindow.java:1110) at sun.awt.X11.XWindow.reshape(XWindow.java:1062) at sun.awt.X11.XWindow.reshape(XWindow.java:1043) at sun.awt.X11.XContentWindow.setContentBounds(XContentWindow.java:84) at sun.awt.X11.XDecoratedPeer.reconfigureContentWindow(XDecoratedPeer.java:585) at sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:710) at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1081) at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1038) at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:471) at sun.awt.X11.XToolkit.run(XToolkit.java:584) at sun.awt.X11.XToolkit.run(XToolkit.java:519) at java.lang.Thread.run(Thread.java:619) "Java2D Disposer" daemon prio=10 tid=0x08230000 nid=0x1a36 in Object.wait() [0x4acf9000..0x4acfa0c0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x423f0478> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x423f0478> (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=0x4a612400 nid=0x1a34 runnable [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "CompilerThread0" daemon prio=10 tid=0x4a610c00 nid=0x1a33 waiting on condition [0x00000000..0x4a854be8] java.lang.Thread.State: RUNNABLE "Signal Dispatcher" daemon prio=10 tid=0x4a60f800 nid=0x1a32 waiting on condition [0x00000000..0x00000000] java.lang.Thread.State: RUNNABLE "Finalizer" daemon prio=10 tid=0x4a600800 nid=0x1a31 in Object.wait() [0x4a74f000..0x4a74fe40] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x423f0660> (a java.lang.ref.ReferenceQueue$Lock) at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:116) - locked <0x423f0660> (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=0x080a6c00 nid=0x1a30 in Object.wait() [0x4a5fb000..0x4a5fbfc0] java.lang.Thread.State: WAITING (on object monitor) at java.lang.Object.wait(Native Method) - waiting on <0x423f06f0> (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 <0x423f06f0> (a java.lang.ref.Reference$Lock) "main" prio=10 tid=0x08057c00 nid=0x1a2e waiting on condition [0x401f2000..0x401f3298] java.lang.Thread.State: WAITING (parking) at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x427e8a40> (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:745) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1108) 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:249) at sun.awt.X11.XAwtState.getComponentMouseEntered(XAwtState.java:43) at sun.awt.X11.XGlobalCursorManager.findHeavyweightUnderCursor(XGlobalCursorManager.java:135) at sun.awt.X11.XGlobalCursorManager.findHeavyweightUnderCursor(XGlobalCursorManager.java:151) at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:166) at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManager.java:82) at sun.awt.X11.XComponentPeer.updateCursorImmediately(XComponentPeer.java:821) at java.awt.Component.updateCursorImmediately(Component.java:2758) at java.awt.Component.show(Component.java:1389) - locked <0x423f6d70> (a java.awt.Component$AWTTreeLock) at java.awt.Window.show(Window.java:846) at java.awt.Component.show(Component.java:1414) at java.awt.Component.setVisible(Component.java:1367) at java.awt.Window.setVisible(Window.java:818) at java.awt.GraphicsDevice.setFullScreenWindow(GraphicsDevice.java:242) at sun.awt.X11GraphicsDevice.setFullScreenWindow(X11GraphicsDevice.java:314) - locked <0x423f19f8> (a sun.awt.X11GraphicsDevice) at FullScreenTest.fullScreenSameDevice(FullScreenTest.java:81) at FullScreenTest.<init>(FullScreenTest.java:44) at FullScreenTest.main(FullScreenTest.java:93) "VM Thread" prio=10 tid=0x080a3c00 nid=0x1a2f runnable "VM Periodic Task Thread" prio=10 tid=0x4a613c00 nid=0x1a35 waiting on condition JNI global references: 792 Found one Java-level deadlock: ============================= "AWT-XAWT": waiting to lock monitor 0x080a7fe4 (object 0x423f19f8, a sun.awt.X11GraphicsDevice), which is held by "main" "main": waiting for ownable synchronizer 0x427e8a40, (a java.util.concurrent.locks.ReentrantLock$NonfairSync), which is held by "AWT-XAWT" Java stack information for the threads listed above: =================================================== "AWT-XAWT": at sun.awt.X11GraphicsDevice.getProxyKeyFor(X11GraphicsDevice.java:70) - waiting to lock <0x423f19f8> (a sun.awt.X11GraphicsDevice) at sun.awt.X11GraphicsConfig.getProxyKey(X11GraphicsConfig.java:166) at sun.java2d.x11.X11SurfaceData.<init>(X11SurfaceData.java:404) at sun.java2d.x11.X11SurfaceData$X11WindowSurfaceData.<init>(X11SurfaceData.java:665) at sun.java2d.x11.X11SurfaceData.createData(X11SurfaceData.java:370) at sun.awt.X11GraphicsConfig.createSurfaceData(X11GraphicsConfig.java:339) at sun.awt.X11.XWindow.validateSurface(XWindow.java:1110) at sun.awt.X11.XWindow.reshape(XWindow.java:1062) at sun.awt.X11.XWindow.reshape(XWindow.java:1043) at sun.awt.X11.XContentWindow.setContentBounds(XContentWindow.java:84) at sun.awt.X11.XDecoratedPeer.reconfigureContentWindow(XDecoratedPeer.java:585) at sun.awt.X11.XDecoratedPeer.handleConfigureNotifyEvent(XDecoratedPeer.java:710) at sun.awt.X11.XBaseWindow.dispatchEvent(XBaseWindow.java:1081) at sun.awt.X11.XBaseWindow.dispatchToWindow(XBaseWindow.java:1038) at sun.awt.X11.XToolkit.dispatchEvent(XToolkit.java:471) at sun.awt.X11.XToolkit.run(XToolkit.java:584) at sun.awt.X11.XToolkit.run(XToolkit.java:519) at java.lang.Thread.run(Thread.java:619) "main": at sun.misc.Unsafe.park(Native Method) - parking to wait for <0x427e8a40> (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:745) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:778) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1108) 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:249) at sun.awt.X11.XAwtState.getComponentMouseEntered(XAwtState.java:43) at sun.awt.X11.XGlobalCursorManager.findHeavyweightUnderCursor(XGlobalCursorManager.java:135) at sun.awt.X11.XGlobalCursorManager.findHeavyweightUnderCursor(XGlobalCursorManager.java:151) at sun.awt.GlobalCursorManager._updateCursor(GlobalCursorManager.java:166) at sun.awt.GlobalCursorManager.updateCursorImmediately(GlobalCursorManager.java:82) at sun.awt.X11.XComponentPeer.updateCursorImmediately(XComponentPeer.java:821) at java.awt.Component.updateCursorImmediately(Component.java:2758) at java.awt.Component.show(Component.java:1389) - locked <0x423f6d70> (a java.awt.Component$AWTTreeLock) at java.awt.Window.show(Window.java:846) at java.awt.Component.show(Component.java:1414) at java.awt.Component.setVisible(Component.java:1367) at java.awt.Window.setVisible(Window.java:818) at java.awt.GraphicsDevice.setFullScreenWindow(GraphicsDevice.java:242) at sun.awt.X11GraphicsDevice.setFullScreenWindow(X11GraphicsDevice.java:314) - locked <0x423f19f8> (a sun.awt.X11GraphicsDevice) at FullScreenTest.fullScreenSameDevice(FullScreenTest.java:81) at FullScreenTest.<init>(FullScreenTest.java:44) at FullScreenTest.main(FullScreenTest.java:93) Found 1 deadlock. Heap def new generation total 960K, used 430K [0x42300000, 0x42400000, 0x427e0000) eden space 896K, 40% used [0x42300000, 0x4235b968, 0x423e0000) from space 64K, 100% used [0x423f0000, 0x42400000, 0x42400000) to space 64K, 0% used [0x423e0000, 0x423e0000, 0x423f0000) tenured generation total 4096K, used 308K [0x427e0000, 0x42be0000, 0x46300000) the space 4096K, 7% used [0x427e0000, 0x4282d278, 0x4282d400, 0x42be0000) compacting perm gen total 12288K, used 6227K [0x46300000, 0x46f00000, 0x4a300000) the space 12288K, 50% used [0x46300000, 0x46914ff8, 0x46915000, 0x46f00000) No shared spaces configured.
|