SEGV on Fedora Core 3

I have my JOGL application running as a GLCanvas inside a JFrame. I have a WindowListener set on the JFrame. When the user tries to close the application, winowClosing() gets called. From this method I then:

  1. Stop my Animator
  2. Call setVisible(false) on the JFrame
  3. Call dispose() on the JFrame

Works fine on Win32, but on Linux Fedora Core 3, I sometimes see a SEGV during the dispose(). The relevant stack trace is:


C  [libGL.so.1+0x38376]
j  net.java.games.jogl.impl.x11.GLX.glXDestroyContext(JJ)V+0
j  net.java.games.jogl.impl.x11.X11GLContext.destroyImpl()V+17
j  net.java.games.jogl.impl.GLContext.destroy()V+33
j  net.java.games.jogl.GLCanvas.removeNotify()V+4
j  java.awt.Container.removeNotify()V+38
j  javax.swing.JComponent.removeNotify()V+1
j  java.awt.Container.removeNotify()V+38
j  javax.swing.JComponent.removeNotify()V+1
j  java.awt.Container.removeNotify()V+38
j  javax.swing.JComponent.removeNotify()V+1
j  javax.swing.JRootPane.removeNotify()V+5
j  java.awt.Container.removeNotify()V+38
j  java.awt.Frame.removeNotify()V+51
j  java.awt.Window$1DisposeAction.run()V+105
j  java.awt.Window.doDispose()V+16
j  java.awt.Window.dispose()V+1
j rob.kit2.Start.windowClosing(Ljava/awt/event/WindowEvent;)V+19

Any ideas anyone ? I’m using JOGL 1.1b07 and NVidia drivers about a week old. If I omit the ‘setVisible(false)’ the problem still occurs.

Full log here:

http://un.abraded.co.uk/jogl/hs_err_pid4479.log

[EDIT] Updated above URL

Thanks
Rob

I have the same problem with Jake2 on debian and redhat.
(nvidia card and driver versions 5336, 6111, 6629)
The jogl 1.0 release works but all 1.1b0* not.

Here is a quick workaround. Works with Jake2 and jogl1.1b0*


// canvas is an instance of GLCanvas
// window is an instance of JFrame
  if (canvas != null) {
    window.remove(canvas);
    canvas = null;
  }
  window.dispose();

I think jogl and AWT should handle this correctly without this hack.
I hope the jogl-team has an idea whats going wrong.

bye
Carsten

http://www.bytonic.de

Carsten,

Thanks for the suggestion. Unfortunately, I just get the SIGSEGV in the remove():


C  [libGL.so.1+0x38376]
j  net.java.games.jogl.impl.x11.GLX.glXDestroyContext(JJ)V+0
j  net.java.games.jogl.impl.x11.X11GLContext.destroyImpl()V+17
j  net.java.games.jogl.impl.GLContext.destroy()V+33
j  net.java.games.jogl.GLCanvas.removeNotify()V+4
j  java.awt.Container.remove(I)V+43
j  rob.kit2.Start.windowClosing(Ljava/awt/event/WindowEvent;)V+23

Full log here:
http://un.abraded.co.uk/jogl/hs_err_pid3350.log

[EDIT] updated above URL

Rob

Could you produce a small self-contained test case and please file a bug with the JOGL Issue Tracker? Thanks.

Ken,

Thanks for the reply - It’s now raised as issue #124.

It’s not a huge inhibitor to me, so I’ve only raised it as P5.

Rob