JDK-6975408 : Java2Demo hangs with xrender=True in OEL5.5 using jdk7 b103 in the linux
  • Type: Bug
  • Component: client-libs
  • Sub-Component: 2d
  • Affected Version: 7
  • Priority: P2
  • Status: Closed
  • Resolution: Cannot Reproduce
  • OS: linux
  • CPU: x86
  • Submitted: 2010-08-06
  • Updated: 2013-05-01
  • Resolved: 2011-03-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 7
7Resolved
Related Reports
Relates :  
Description
When launch Java2Demo in the linux machine with -Dsun.java2d.xrender=True option, it hangs, the hang can be reproducible as always, if you resize the demo, it hangs right way.

Java Version: 1.7.0-ea-b103
System info: 
host name:jfcsqe-solar.sfbay.sun.com
Linux jfcsqe-solar 2.6.18-194.8.1.0.1.el5 #1 SMP Thu Jul 1 17:09:06 EDT 2010
i686 i686 i386 GNU/Linux
Red Hat Enterprise Linux Server release 5.5 (Tikanga)

How to produce the problem:
1, login to this machine
2, cd /export/jdk/jdk1.7.0 (b103 installed)
3, bin/java -jar -Dsun.java2d.xrender=True demo/jfc/Java2D/*.jar
4, click auto run, it will hang in clip or other.
5, please see attached screen shot and the trace info
#0 Fri Aug 06 13:19:39 PDT 2010, 7648.828K used
2010-08-06 13:25:50
Full thread dump Java HotSpot(TM) Server VM (19.0-b04 mixed mode):
"TextureAnim Demo" prio=10 tid=0x096b0c00 nid=0xae7 waiting on condition
[0x04a34000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.AnimatingSurface.run(AnimatingSurface.java:89)
        at java.lang.Thread.run(Thread.java:717)

"GradAnim Demo" prio=10 tid=0x096aac00 nid=0xae6 waiting on condition
[0x017bf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.AnimatingSurface.run(AnimatingSurface.java:89)
        at java.lang.Thread.run(Thread.java:717)

"PerformanceMonitor" prio=10 tid=0x09728c00 nid=0xac0 waiting on condition
[0x06f7f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.PerformanceMonitor$Surface.run(PerformanceMonitor.java:187)
        at java.lang.Thread.run(Thread.java:717)

"MemoryMonitor" prio=10 tid=0x098a3800 nid=0xabf sleeping[0x05606000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.MemoryMonitor$Surface.run(MemoryMonitor.java:302)
        at java.lang.Thread.run(Thread.java:717)

"RunWindow" prio=10 tid=0x098e4800 nid=0xab5 in Object.wait() [0x01ac7000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xaa5f9c08> (a java.awt.EventQueue$1AWTInvocationLock)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1156)
        - locked <0xaa5f9c08> (a java.awt.EventQueue$1AWTInvocationLock)
        at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1346)
        at java2d.RunWindow.invokeAndWait(RunWindow.java:321)
        at java2d.RunWindow.run(RunWindow.java:236)
        at java.lang.Thread.run(Thread.java:717)

"TimerQueue" daemon prio=10 tid=0x098a5400 nid=0xab4 waiting on condition
[0x084f6000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x95777f18> (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:2039)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)
        at javax.swing.TimerQueue.run(TimerQueue.java:171)
        at java.lang.Thread.run(Thread.java:717)

"DestroyJavaVM" prio=10 tid=0x09609400 nid=0xaa1 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-0" prio=10 tid=0x90dcfc00 nid=0xaaf runnable [0x05dfe000]
   java.lang.Thread.State: RUNNABLE
        at sun.java2d.loops.Blit.Blit(Native Method)
        at
sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:146)
        at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:347)
        at
sun.java2d.SurfaceDataProxy.updateSurfaceData(SurfaceDataProxy.java:498)
        at sun.java2d.SurfaceDataProxy.replaceData(SurfaceDataProxy.java:455)
        at sun.java2d.SurfaceData.getSourceSurfaceData(SurfaceData.java:228)
        at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:563)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:71)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:1008)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3062)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3047)
        at
java2d.PerformanceMonitor$Surface.paint(PerformanceMonitor.java:102)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paint(JComponent.java:1063)
        at javax.swing.JLayeredPane.paint(JLayeredPane.java:585)
        at javax.swing.JComponent.paintChildren(JComponent.java:887)
        - locked <0x9557dba0> (a java.awt.Component$AWTTreeLock)
        at javax.swing.JComponent.paintToOffscreen(JComponent.java:5201)
        at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:295)
        at javax.swing.RepaintManager.paint(RepaintManager.java:1206)
        at javax.swing.JComponent.paint(JComponent.java:1040)
        at
java.awt.GraphicsCallback$PaintCallback.run(GraphicsCallback.java:39)
        at
sun.awt.SunGraphicsCallback.runOneComponent(SunGraphicsCallback.java:78)
        at
sun.awt.SunGraphicsCallback.runComponents(SunGraphicsCallback.java:115)
        at java.awt.Container.paint(Container.java:1942)
        at java.awt.Window.paint(Window.java:3780)
        at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:781)
        at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:728)
        at
javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:677)
        at javax.swing.RepaintManager.access$700(RepaintManager.java:59)
        at
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1621)
        at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:251)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:660)
        at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:209)
        at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:128)
        at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:118)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:113)
        at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:105)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:90)

"AWT-Shutdown" prio=10 tid=0x90da1c00 nid=0xaae in Object.wait() [0x051ff000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x956a4138> (a java.lang.Object)
        at java.lang.Object.wait(Object.java:502)
        at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
        - locked <0x956a4138> (a java.lang.Object)
        at java.lang.Thread.run(Thread.java:717)

"AWT-XAWT" daemon prio=10 tid=0x90d84800 nid=0xaad waiting on condition
[0x00bbc000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x95384d58> (a
          java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:867)
        at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1197)
        at
java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:214)
        at
java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:290)
        at sun.awt.SunToolkit.awtLock(SunToolkit.java:274)
        at sun.awt.X11.XToolkit.waitForEvents(Native Method)
        at sun.awt.X11.XToolkit.run(XToolkit.java:625)
        at sun.awt.X11.XToolkit.run(XToolkit.java:589)
        at java.lang.Thread.run(Thread.java:717)

"Java2D Disposer" daemon prio=10 tid=0x90d6bc00 nid=0xaac in Object.wait()
[0x0093a000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x956697e8> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
        - locked <0x956697e8> (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:717)

"Low Memory Detector" daemon prio=10 tid=0x90d14000 nid=0xaaa runnable
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=10 tid=0x90d12400 nid=0xaa9 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=10 tid=0x90d10400 nid=0xaa8 waiting on condition
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=10 tid=0x90d0e800 nid=0xaa7 runnable
[0x00000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=10 tid=0x09689400 nid=0xaa6 in Object.wait()
[0x003fc000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x956b4080> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
        - locked <0x956b4080> (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=0x09687c00 nid=0xaa5 in Object.wait()
[0x00399000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x957666b8> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
        - locked <0x957666b8> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=10 tid=0x09685000 nid=0xaa4 runnable 

"GC task thread#0 (ParallelGC)" prio=10 tid=0x09610400 nid=0xaa2 runnable 

"GC task thread#1 (ParallelGC)" prio=10 tid=0x09611800 nid=0xaa3 runnable 

"VM Periodic Task Thread" prio=10 tid=0x90d16000 nid=0xaab waiting on
condition 

JNI global references: 2692

Heap
 PSYoungGen      total 14720K, used 2935K [0xaa4e0000, 0xab900000, 0xb4e30000)
  eden space 14336K, 20% used [0xaa4e0000,0xaa7bdc80,0xab2e0000)
  from space 384K, 0% used [0xab2e0000,0xab2e0000,0xab340000)
  to   space 3136K, 0% used [0xab5f0000,0xab5f0000,0xab900000)
 PSOldGen        total 21632K, used 7437K [0x95230000, 0x96750000, 0xaa4e0000)
  object space 21632K, 34% used [0x95230000,0x95973488,0x96750000)
 PSPermGen       total 18688K, used 13172K [0x91230000, 0x92470000,
0x95230000)
  object space 18688K, 70% used [0x91230000,0x91f0d2f0,0x92470000)


[dtftest@jfcsqe-solar jdk1.7.0]$ bin/java -jar -Dsun.java2d.xrender=True demo/jfc/Java2D/*.jar
XRender pipeline enabled
Xrender: INFO: Jules library not installed.

Java2D Demo RunWindow : 20 Runs, 10 second delay between tabs
java version: 1.7.0-ea
Linux 2.6.18-194.8.1.0.1.el5

#0 Fri Aug 06 13:19:39 PDT 2010, 7648.828K used
2010-08-06 13:25:50
Full thread dump Java HotSpot(TM) Server VM (19.0-b04 mixed mode):

"TextureAnim Demo" prio=10 tid=0x096b0c00 nid=0xae7 waiting on condition [0x04a34000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.AnimatingSurface.run(AnimatingSurface.java:89)
        at java.lang.Thread.run(Thread.java:717)

"GradAnim Demo" prio=10 tid=0x096aac00 nid=0xae6 waiting on condition [0x017bf000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.AnimatingSurface.run(AnimatingSurface.java:89)
        at java.lang.Thread.run(Thread.java:717)

"PerformanceMonitor" prio=10 tid=0x09728c00 nid=0xac0 waiting on condition [0x06f7f000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.PerformanceMonitor$Surface.run(PerformanceMonitor.java:187)
        at java.lang.Thread.run(Thread.java:717)

"MemoryMonitor" prio=10 tid=0x098a3800 nid=0xabf sleeping[0x05606000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at java2d.MemoryMonitor$Surface.run(MemoryMonitor.java:302)
        at java.lang.Thread.run(Thread.java:717)

"RunWindow" prio=10 tid=0x098e4800 nid=0xab5 in Object.wait() [0x01ac7000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0xaa5f9c08> (a java.awt.EventQueue$1AWTInvocationLock)
        at java.lang.Object.wait(Object.java:502)
        at java.awt.EventQueue.invokeAndWait(EventQueue.java:1156)
        - locked <0xaa5f9c08> (a java.awt.EventQueue$1AWTInvocationLock)
        at javax.swing.SwingUtilities.invokeAndWait(SwingUtilities.java:1346)
        at java2d.RunWindow.invokeAndWait(RunWindow.java:321)
        at java2d.RunWindow.run(RunWindow.java:236)
        at java.lang.Thread.run(Thread.java:717)

"TimerQueue" daemon prio=10 tid=0x098a5400 nid=0xab4 waiting on condition [0x084f6000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x95777f18> (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:2039)
        at java.util.concurrent.DelayQueue.take(DelayQueue.java:209)
        at javax.swing.TimerQueue.run(TimerQueue.java:171)
        at java.lang.Thread.run(Thread.java:717)

"DestroyJavaVM" prio=10 tid=0x09609400 nid=0xaa1 waiting on condition [0x00000000]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-0" prio=10 tid=0x90dcfc00 nid=0xaaf runnable [0x05dfe000]
   java.lang.Thread.State: RUNNABLE
        at sun.java2d.loops.Blit.Blit(Native Method)
        at sun.java2d.xr.XRPMBlitLoops.cacheToTmpSurface(XRPMBlitLoops.java:146)
        at sun.java2d.xr.XrSwToPMBlit.Blit(XRPMBlitLoops.java:347)
        at sun.java2d.SurfaceDataProxy.updateSurfaceData(SurfaceDataProxy.java:498)
        at sun.java2d.SurfaceDataProxy.replaceData(SurfaceDataProxy.java:455)
        at sun.java2d.SurfaceData.getSourceSurfaceData(SurfaceData.java:228)
        at sun.java2d.pipe.DrawImage.renderImageCopy(DrawImage.java:563)
        at sun.java2d.pipe.DrawImage.copyImage(DrawImage.java:71)
        at sun.java2d.SunGraphics2D.drawImage(SunGraphics2D.java:3062)

Comments
EVALUATION I have not recently seen such a hang and certainly with the fix for 6974985: Jave2Demo threw exceptions when xrender enabled in OEL5.5 in place it runs reliably for a long time. I'm closing this out as not reproducible, rather than a duplicate, mainly because its hard to prove that its exactly the same issue.
01-03-2011