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

REG: Deadlock when running a fullscreen test on SuSE 10 with Nvidia

XMLWordPrintable

    • 2d
    • b08
    • 7
    • b14
    • x86
    • linux_suse_sles_10
    • Verified

      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.

            flar Jim Graham
            pmohansunw Praveen Mohan (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: