Bug 597

Summary: Segfault on GLDrawableFactory.getDesktopFactory() used in headless mode
Product: [JogAmp] Jogl Reporter: Calixte <calixte.denizet>
Component: x11Assignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: normal    
Priority: ---    
Version: 2   
Hardware: All   
OS: linux   
Type: --- SCM Refs:
jogl 5c83989b8bb8e8f9cbc25f09e6a6fe5847e6b94c
Workaround: ---
Attachments: test case

Description Calixte 2012-06-25 16:04:11 CEST
Created attachment 357 [details]
test case

To reproduce:
$ ssh localhost
$ java -Djava.awt.headless=true -Djava.library.path=./lib/linux-amd64/ -cp ./jogamp-all-platforms/jar/jogl.all.jar:./jogamp-all-platforms/jar/gluegen-rt.jar:. plop

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007ff64e8fa840, pid=20190, tid=140696029271808
#
# JRE version: 6.0_26-b03
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.1-b02 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C  [libX11.so.6+0x33840]  XDisplayString+0x0
#
# An error report file with more information is saved as:
# /tmp/jogl/hs_err_pid20190.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Abandon
Comment 1 Sven Gothel 2012-06-30 15:22:15 CEST
Note: Remote connection tested using ssh to localhost or an actual remote machine.

Test w/ proper X11 authentication, i.e. DISPLAY and xauth:

> cd projects/JOGL/jogl-bugs/597-headless/
> echo $DISPLAY
localhost:10.0

> xclock
'works'

T1.1 OK> java plop 
jogamp.opengl.x11.glx.X11GLXDrawableFactory@f581593

T1.2 OK> java -Djava.awt.headless=true plop 
jogamp.opengl.x11.glx.X11GLXDrawableFactory@6f34a7d8

+++

Test _without_ proper X11 authentication, i.e. DISPLAY and xauth:

> xclock
No protocol specified
No protocol specified
Error: Can't open display: :0.0

T2.1 OK> java plop 
No protocol specified
No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.
   (Stack trace from: 
        GLProfile.initProfilesForDefaultDevices(..) ->
        NativeWindowFactory.initSingleton(..) -> 
        JAWTUtil.<clinit>->
        sun.awt.X11.XToolkit.<clinit> ->         
        sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)

T2.2 ERROR> java -Djava.awt.headless=true plop 
No protocol specified
No protocol specified
SIGSEGV!!

-> confirmed.

Thx for reporting.
Comment 2 Sven Gothel 2012-06-30 15:45:25 CEST
fixed w/ commit 5c83989b8bb8e8f9cbc25f09e6a6fe5847e6b94c