Login  Register

JOGL commit 166e5da causes deadlock errors in Java 3D

Posted by Julien on Jan 23, 2014; 8:49pm
URL: https://forum.jogamp.org/JOGL-commit-166e5da-causes-deadlock-errors-in-Java-3D-tp4031305.html

Hi.

JOGL commit 166e5da5298b16b0acbf900004964d370cd0aa29 causes deadlock errors in Java 3D.

This commit causes the IDV (http://www.unidata.ucar.edu/software/idv/) to occasionally (but reproducibly) freeze up. This problem occurs on Windows, OS X and Linux.

Here are the relevant thread dumps :

"J3D-Renderer-1" prio=5 tid=0x00007f96dceaf800 nid=0xe103 waiting for monitor entry [0x000000011d9d5000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at java.awt.Component.removeHierarchyListener(Component.java:5383)
	- waiting to lock <0x00000007f8127338> (a java.awt.Component$AWTTreeLock)
	at com.jogamp.nativewindow.awt.JAWTWindow$JAWTComponentListener.detach(JAWTWindow.java:175)
	at com.jogamp.nativewindow.awt.JAWTWindow$JAWTComponentListener.access$600(JAWTWindow.java:123)
	at com.jogamp.nativewindow.awt.JAWTWindow.destroy(JAWTWindow.java:606)
	at javax.media.j3d.JoglDrawable.destroyNativeWindow(JoglDrawable.java:60)
	at javax.media.j3d.JoglPipeline.destroyContext(JoglPipeline.java:6799)
	at javax.media.j3d.Canvas3D.destroyContext(Canvas3D.java:4651)
	at javax.media.j3d.Renderer.removeCtx(Renderer.java:1551)
	- locked <0x00000007f841de58> (a java.lang.Object)
	at javax.media.j3d.Renderer.doWork(Renderer.java:372)
	at javax.media.j3d.J3dThread.run(J3dThread.java:271)


"J3D-TimerThread" prio=5 tid=0x00007f96dbc8d800 nid=0xd12f waiting for monitor entry [0x0000000117bf8000]
   java.lang.Thread.State: BLOCKED (on object monitor)
	at javax.media.j3d.MasterControl.processMessage(MasterControl.java:1102)
	- waiting to lock <0x00000007f841cf00> (a java.lang.Object)
	at javax.media.j3d.WakeupCondition.setConditionMet(WakeupCondition.java:115)
	at javax.media.j3d.WakeupCriterion.setTriggered(WakeupCriterion.java:66)
	at javax.media.j3d.TimerThread.run(TimerThread.java:128)
 
I found a forum posting related to this issue:

https://www.java.net/node/667423

Commits prior to 166e5da do not have deadlock problems. I guess changes to JAWTWindow.java may be the source of the problem.

Would it be possible to have this issue examined? I can provide more information if necessary including how to reproduce this problem in the IDV. I cannot necessarily provide a small test case, as this deadlock bug probably depends on complex interactions between our application, Java 3D, and JOGL.

Many thanks!

-Julien