I have a couple exceptions that I got via automated bug reporting from users. The first one has a lot of information, so much that I can not really figure out what it is trying to tell me.
First exception, on Linux: javax.media.opengl.GLException: AWT-EventQueue-0: Error making temp context(1) current: display 0x7fd57827b5c0, context 0x7fd578e802d8, drawable X11OnscreenGLXDrawable[Realized true, Factory jogamp.opengl.x11.glx.X11GLXDrawableFactory@253ac14a, handle 0x4e000de, Window JAWT-Window[windowHandle 0x4e000de, surfaceHandle 0x4e000de, bounds [ 0 / 0 1389 x 429 ], insets [ l 0, r 0 - t 0, b 0 - 0x0], shallUseOffscreenLayer false, isOffscreenLayerSurface false, pos 0/0, size 1389x429, visible true, lockedExt false, config AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT, connection :0.0, unitID 0, awtDevice X11GraphicsDevice[screen=0], handle 0x0], idx 0], chosen GLCaps[glx vid 0x37, fbc 0x9d: on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/8/2, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], requested GLCaps[on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/1/6, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], X11GraphicsConfig[dev=X11GraphicsDevice[screen=0],vis=0x37], encapsulated X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type X11, connection :0.0, unitID 0, handle 0x7fd57827b5c0], idx 0], visualID 0x38, fbConfigID 0x9f, requested GLCaps[on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/1/6, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], chosen GLCaps[glx vid 0x38, fbc 0x9f: on-scr, rgba 0x8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/8/2, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]]]], awtComponent AWT-GLCanvas[Realized true, jogamp.opengl.x11.glx.X11OnscreenGLXDrawable, Factory jogamp.opengl.x11.glx.X11GLXDrawableFactory@253ac14a, handle 0x4e000de, Drawable size 1389x429, AWT pos 0/0, size 1389x429, visible true, AWTGraphicsConfiguration[AWTGraphicsScreen[AWTGraphicsDevice[type AWT, connection :0.0, unitID 0, awtDevice X11GraphicsDevice[screen=0], handle 0x0], idx 0], chosen GLCaps[glx vid 0x37, fbc 0x9d: on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/8/2, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], requested GLCaps[on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/1/6, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], X11GraphicsConfig[dev=X11GraphicsDevice[screen=0],vis=0x37], encapsulated X11GLXGraphicsConfiguration[X11GraphicsScreen[X11GraphicsDevice[type X11, connection :0.0, unitID 0, handle 0x7fd57827b5c0], idx 0], visualID 0x38, fbConfigID 0x9f, requested GLCaps[on-scr, rgba 0x8/8/8/1, opaque, accum-rgba 0/0/0/0, dp/st/ms: 16/1/6, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]], chosen GLCaps[glx vid 0x38, fbc 0x9f: on-scr, rgba 0x8/8/8/8, opaque, accum-rgba 16/16/16/16, dp/st/ms: 24/8/2, sample-ext default, dbl, mono , hw, GLProfile[GL3bc/GL3bc.hw]]]]], surfaceLock <3467f45e, 14dc6233>[count 1, qsz 0, owner <AWT-EventQueue-0>]]] at jogamp.opengl.x11.glx.X11GLXContext.createImplRaw(X11GLXContext.java:328) at jogamp.opengl.x11.glx.X11GLXContext.createImpl(X11GLXContext.java:260) at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:505) at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:424) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:415) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:364) at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:864) at javax.media.opengl.Threading.invoke(Threading.java:193) at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:405) at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:482) at sun.awt.RepaintArea.paintComponent(RepaintArea.java:264) at sun.awt.X11.XRepaintArea.paintComponent(XRepaintArea.java:73) at sun.awt.RepaintArea.paint(RepaintArea.java:240) at sun.awt.X11.XComponentPeer.handleEvent(XComponentPeer.java:657) at java.awt.Component.dispatchEventImpl(Component.java:4826) at java.awt.Component.dispatchEvent(Component.java:4576) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:672) at java.awt.EventQueue.access$400(EventQueue.java:96) at java.awt.EventQueue$2.run(EventQueue.java:631) at java.awt.EventQueue$2.run(EventQueue.java:629) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116) at java.awt.EventQueue$3.run(EventQueue.java:645) at java.awt.EventQueue$3.run(EventQueue.java:643) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105) at java.awt.EventQueue.dispatchEvent(EventQueue.java:642) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:275) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177) at java.awt.EventDispatchThread.run(EventDispatchThread.java:138) And on Windows: javax.media.opengl.GLException: Unable to create temp OpenGL context for device context 0x54011090 at jogamp.opengl.windows.wgl.WindowsWGLContext.createImpl(WindowsWGLContext.java:293) at jogamp.opengl.GLContextImpl.makeCurrentWithinLock(GLContextImpl.java:505) at jogamp.opengl.GLContextImpl.makeCurrent(GLContextImpl.java:424) at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:415) at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:364) at javax.media.opengl.awt.GLCanvas$8.run(GLCanvas.java:864) at javax.media.opengl.Threading.invoke(Threading.java:193) at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:405) at javax.media.opengl.awt.GLCanvas.paint(GLCanvas.java:482) at sun.awt.RepaintArea.paintComponent(Unknown Source) at sun.awt.RepaintArea.paint(Unknown Source) at sun.awt.windows.WComponentPeer.handleEvent(Unknown Source) at java.awt.Component.dispatchEventImpl(Unknown Source) at java.awt.Component.dispatchEvent(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.awt.EventQueue$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.run(Unknown Source) |
Administrator
|
Hi Bill
I had the same problems some months ago in Ardor3D. Some drivers are not very ... tolerant, especially under Windows. You have to be very strict in your threading, the OpenGL context must be made current on the same thread than the one on which it had been created. This kind of error happened even earlier in my case: http://www.ardor3d.com/forums/viewtopic.php?f=11&t=274&start=100#p15194 It is exactly the same error than your second one. You can have a look at my source code, especially the class JoglAwtCanvas: http://sourceforge.net/p/ardor3d-jogl2/code/81/tree/trunk/ardor3d-jogl2/src/main/java/com/ardor3d/framework/jogl/JoglAwtCanvas.java Please use the very latest build (number 825 or later).
Julien Gouesse | Personal blog | Website
|
I think I am already doing what you suggest. I create my GLCanvas on my AWT-EventQueue-0 thread, which is the same thread where the exception is happening. Is that correct?
|
Administrator
|
If you were already doing what I suggest, you would not get this exception. Please provide a small test case and reproduce this bug with debug display enabled.
Julien Gouesse | Personal blog | Website
|
Unfortunately this is a problem for an end user, not on any of my own machines. All the GL stuff is happening on the AWT-EventQueue thread, but thanks for your help!
|
Administrator
|
Please can you at least get some info about the hardware? Someone got this problem under OpenSuse but I never succeeded in reproducing it.
Julien Gouesse | Personal blog | Website
|
I'd love to.
Is there a way to get the debug output programmatically? I'll have to add something to capture it and include it in our automatic error reporting. If this isn't possible I'll go deeper and replace System.err. |
Administrator
|
Why not using -Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all ?
Julien Gouesse | Personal blog | Website
|
Administrator
|
In reply to this post by Bill Kuker
On 10/17/2012 02:10 PM, Bill Kuker [via jogamp] wrote:
> I'd love to. > > Is there a way to get the debug output programmatically? The DebugGL and TraceGL pipeline can be controlled programmatically: JOGLNewtAppletBase: .. if(glDebug) { try { _gl = _gl.getContext().setGL( GLPipelineFactory.create("javax.media.opengl.Debug", null, _gl, null) ); } catch (Exception e) {e.printStackTrace();} } if(glTrace) { try { // Trace .. _gl = _gl.getContext().setGL( GLPipelineFactory.create("javax.media.opengl.Trace", null, _gl, new Object[] { System.err } ) ); } catch (Exception e) {e.printStackTrace();} } .. > I'll have to add > something to capture it and include it in our automatic error reporting. If > this isn't possible I'll go deeper and replace System.err. The other debug/verbose flags always produce output on stderr. ~Sven signature.asc (907 bytes) Download Attachment |
In reply to this post by gouessej
Yes, I want to capture all of those.
JOGL is working perfectly on my 6 dev machines, about a dozen other dev's machines, and for most of the users. Only a handful out of a few thousand get these errors, and they are not technically inclined. They get a "bug report" window that lets them submit a report to a web service. They would not be able to handle capturing stderr even if the reports weren't anonymous. Therefore I have to capture and store the debug output in memory in case there is a crash, and then submit it to the web service that catches the automatic bug reports. |
Administrator
|
On 10/23/2012 03:46 PM, Bill Kuker [via jogamp] wrote:
> Yes, I want to capture all of those. > > JOGL is working perfectly on my 6 dev machines, about a dozen other dev's > machines, and for most of the users. > > Only a handful out of a few thousand get these errors, and they are not > technically inclined. They get a "bug report" window that lets them submit a > report to a web service. They would not be able to handle capturing stderr > even if the reports weren't anonymous. > > Therefore I have to capture and store the debug output in memory in case there > is a crash, and then submit it to the web service that catches the automatic > bug reports. > but would it be possible for you to write up your experience w/ you project ? Maybe some details about your - applications - user base - deployment quantity and quality - used machines Maybe a blog w/ pictures or 'just' here in the forum. I am sure many are curious, at least I am - and sounds like it has some potential to learn from. ~Sven signature.asc (907 bytes) Download Attachment |
Free forum by Nabble | Edit this page |