Bug 536

Summary: JOGL 2.O RC4 crashs with GLCanvas on OSX Snow Leopard in a 32-bit VM
Product: [JogAmp] Jogl Reporter: andrade <almeida.rodrigo>
Component: macosxAssignee: Sven Gothel <sgothel>
Status: RESOLVED FIXED    
Severity: blocker    
Priority: ---    
Version: 2   
Hardware: pc_x86_32   
OS: macosx   
Type: --- SCM Refs:
gluegen f20389b3f59c5d8c6d9afe0df16282dd09115640 jogl 5ae7fe56614cb8abaf389f945cec2ba1db262479
Workaround: ---
Attachments: Log generated by the Mac OSX Crash Reporter (cleaned)

Description andrade 2011-12-14 18:06:54 CET
Created attachment 303 [details]
Log generated by the Mac OSX Crash Reporter (cleaned)

When launching the Gears demo from the JOGL demo package (which uses GLCanvas) on OSX Leopard 10.6.8, JOGL won't start with a 32-bit VM. It crashs just after opening the window.

To reproduce the crash (you have to be on a Mac OSX 10.6):
java -d32 demos.gears.Gears

Note that GLCanvas works fine with a 64-bit VM and GLJPanel works fine with both 32 and 64 VM.

This bug was indicated in: http://forum.jogamp.org/GLCanvas-problem-with-JOGL-2-0-RC4-on-OSX-Snow-Leopard-32-bit-VM-td3585628.html

Ps: I couldn't run the "Runtime version check" script to generate the test.log but if it's really necessary I can try it again.


Error Output.
******************
Exception in thread "main-AWTAnimator-1" java.lang.IndexOutOfBoundsException
	at java.nio.Buffer.checkIndex(Buffer.java:518)
	at java.nio.DirectByteBuffer.getLong(DirectByteBuffer.java:760)
	at com.jogamp.common.nio.StructAccessor.getLongAt(StructAccessor.java:169)
	at jogamp.nativewindow.jawt.macosx.JAWT_MacOSXDrawingSurfaceInfo.getCocoaViewRef(JAWT_MacOSXDrawingSurfaceInfo.java:53)
	at jogamp.nativewindow.jawt.macosx.MacOSXJAWTWindow.lockSurfaceImpl(MacOSXJAWTWindow.java:173)
	at jogamp.nativewindow.jawt.JAWTWindow.lockSurface(JAWTWindow.java:278)
	at jogamp.opengl.GLDrawableImpl.lockSurface(GLDrawableImpl.java:195)
	at jogamp.opengl.GLDrawableImpl.setRealized(GLDrawableImpl.java:156)
	at javax.media.opengl.awt.GLCanvas.validateGLDrawable(GLCanvas.java:573)
	at javax.media.opengl.awt.GLCanvas.display(GLCanvas.java:394)
	at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:74)
	at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:142)
	at com.jogamp.opengl.util.Animator$MainLoop.run(Animator.java:176)
	at java.lang.Thread.run(Thread.java:680)
Invalid memory access of location 0x15c eip=0x371c63
Bus error

(Same launch command but using the debug flags)
Comment 1 Sven Gothel 2011-12-18 04:27:28 CET
Root cause was a bug in GlueGen.

http://jogamp.org/git/?p=gluegen.git;a=commit;h=f20389b3f59c5d8c6d9afe0df16282dd09115640

Additionally OSX unit tests are executed in 32bit mode as well:
  jogl 5ae7fe56614cb8abaf389f945cec2ba1db262479