Can anyone help me decipher a couple exceptions?

classic Classic list List threaded Threaded
11 messages Options
Reply | Threaded
Open this post in threaded view
|

Can anyone help me decipher a couple exceptions?

Bill Kuker
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)
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Bill Kuker
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?
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Bill Kuker
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!
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

gouessej
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
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Bill Kuker
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.
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

gouessej
Administrator
Why not using -Dnewt.debug=all -Dnativewindow.debug=all -Djogl.debug=all ?
Julien Gouesse | Personal blog | Website
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Sven Gothel
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
Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Bill Kuker
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.

Reply | Threaded
Open this post in threaded view
|

Re: Can anyone help me decipher a couple exceptions?

Sven Gothel
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.
>
I don't remember whether I have already asked,
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