Random crashes in Internet Explorer 6 and 7 with the JOGL applet demo

Hi

I have been running the Gears applet demo
https://jogl-demos.dev.java.net/applettest.html

and I find that sometimes, for a weird reason, it crashes randomly on Windows when using IE 6 or 7.

The crash is immediate. There are no reported errors. The browser simply quits without any warning.

The crash occurs at different times:
sometimes, during the animation, the window just exits,
quite often it starts correctly, and then crashes when you do a browser refresh.

Sometimes there are periods where the application can be loaded again and again just fine. Then, after a while, the crashing starts again.

One person, who tested the application, even said that it forced the blue screen of death to appear and a system reboot.

We have had this error appear on numerous machines: a laptop with an ATI graphics card, various PCs with Intel chipset graphics cards, and a PC with an Nvidia graphics card. So I don’t think it is graphics card related.

Testing basic applets with no 3d content works fine, so it does not appear applet related. That is why I think it might have something to do with JOGL.

At this stage the application is (typically) working fine, so I cannot test to see if I also get the crash under Mozilla.

Does anyone know what is the cause of this error? Has anyone else experienced it?

Any help would be hugely appreciated.

Luke

I haven’t seen this kind of widespread failure of the basic JOGL applet demo, but it is definitely currently the case that JOGL applet deployments are not as robust as Java Web Start deployments.

What OSs are you testing on? Windows NT / 2000 / XP / Vista or Windows 95 / 98 / Me?

Note that any kinds of failures involving a blue screen are definitely due to bugs in the OpenGL driver; a user application should never be able to crash the machine (on any modern OS – not 95 / 98 / Me).

To address this fundamental problem of JOGL applet deployments we have been working for several months on a new implementation of the Java Plug-In, which executes applets in the web browser. The new plug-in’s architecture looks much more like Java Web Start and decouples the execution of the applet from the web browser. At a first cut this will completely eliminate browser crashes due to bugs in JOGL or JOGL applets. We believe it will also inherently make the execution of such applets more robust and reliable.

There have been some recent articles in the press about the new Java Plug-In. Here are some links:

Please stay tuned and watch the Java SE 6 Update N Early Access page. The new Java Plug-In will be in the beta of 6uN which should be available in December.

Thanks for your helpful reply.

Os’s: Windows 2000 and XP.

The system reboot problem occurs with the same graphics card on several different machines, at random times. The chipset is: Intel® Q965/Q963 Express Chipset Family. Oddly, the reboot problem only exists in Internet Explorer 6 & 7. Mozilla works fine, I can now confirm that.

In the case of machines with ATI and Nvidia cards, the browser will simply exit (this problem DOES exist with IE and Mozilla, however). I did some debug tracing and the sudden exit occurs just at the beginning of

public void init(GLAutoDrawable drawable) {
gl = drawable.getGL();
//sudden exit occurs about here

Unfortunately it does not always exit at exactly the same place. It might be a line or two later, or a line before. But it is always in Gears.init(), after all the .dll files have been extracted to Windows and the OpenGL has just started being set up. It makes me think that the crash is occurring in a different thread somehow. Any ideas where?

Luke

Further information:

The system reboot issue was nothing to do with the Gears demo. It was a different jogl demo in which FSAA/multisampling had been enabled:

GLCapabilities cap = new GLCapabilities();
cap.setNumSamples(4);
cap.setSampleBuffers(true);

For some reason, this particular Intel chipset would randomly crash and reboot the system when encountering these lines. Funny, one would expect it to silently ignore the multisampling if it couldn’t handle it. We ran further tests without FSAA and everything was fine.

However, when running the actual Gears demo:
https://jogl-demos.dev.java.net/applettest.html

we are still getting occasional browser exits where the browser window simply disappears, so that problem still subsists.

Luke

Hello

I am still finding that when running the Jogl Applet Gears demo, the Internet Explorer window can suddenly disappear without any warning. The latest time it happened on a browser refresh. The .trace file ended abruptly at:

basic: Stopping applet …
basic: Removed progress listener: sun.plugin.util.GrayBoxPainter@13bad12
basic: Finding information …
basic: Releasing classloader: sun.plugin.ClassLoaderInfo@12498b5, refcount=0
basic: Caching classloader: sun.plugin.ClassLoaderInfo@12498b5
basic: Current classloader cache size: 1
basic: Done …
basic: Joining applet thread …
basic: Destroying applet …
basic: Disposing applet …
FILE ENDS HERE

An hs_err.log file was also generated on my desktop. Here it is:




An unexpected error has been detected by Java Runtime Environment:

EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6962a9a1, pid=3596, tid=476

Java VM: Java HotSpot™ Client VM (1.6.0_03-b05 mixed mode, sharing)

Problematic frame:

C 0x6962a9a1

If you would like to submit a bug report, please visit:

http://java.sun.com/webapps/bugreport/crash.jsp

--------------- T H R E A D ---------------

Current thread (0x08d84c00): JavaThread “AWT-Windows” daemon [_thread_in_native, id=476]

siginfo: ExceptionCode=0xc0000005, reading address 0x00000010

Registers:
EAX=0x00000010, EBX=0x098cf6b4, ECX=0x00040001, EDX=0x00000002
ESP=0x098cf664, EBP=0x098cf69c, ESI=0x00040000, EDI=0x00000000
EIP=0x6962a9a1, EFLAGS=0x00010202

Top of Stack: (sp=0x098cf664)
0x098cf664: 00000000 00040000 7e4318e3 00000000
0x098cf674: 00000000 098cf6b4 0000c207 006595d0
0x098cf684: 00000000 7ff9b000 00030000 00000000
0x098cf694: 00000000 22eb64a0 098cf6c4 7e44f200
0x098cf6a4: 00040000 00000000 098cf6b4 6962a980
0x098cf6b4: 00000000 00000000 0000c207 01090480
0x098cf6c4: 098cf6ec 7e41b50c 006595d0 0000c207
0x098cf6d4: 00000000 00000000 6962a980 06c001e5

Instructions: (pc=0x6962a9a1)
0x6962a991: 8b 00 eb 0e 64 a1 94 0f 00 00 03 05 cc 6c 9d 69
0x6962a9a1: 8b 00 8b f0 85 f6 53 8b 1d 7c 41 92 69 75 49 ff

Stack: [0x097d0000,0x098d0000), sp=0x098cf664, free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C 0x6962a9a1
C [USER32.dll+0x3f200]
C [USER32.dll+0xb50c]
C [ntdll.dll+0xeae3]
C [USER32.dll+0xb903]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.awt.windows.WToolkit.eventLoop()V+0
j sun.awt.windows.WToolkit.run()V+69
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

--------------- P R O C E S S ---------------

Java Threads: ( => current thread )
0x0a457400 JavaThread “Thread-12” [_thread_blocked, id=4048]
0x0a7a8400 JavaThread “Direct Clip” daemon [_thread_blocked, id=3028]
0x0a671c00 JavaThread “Java Sound Event Dispatcher” daemon [_thread_blocked, id=3064]
0x08d7f000 JavaThread “Timer-0” [_thread_blocked, id=1980]
0x0a438000 JavaThread “AWT-EventQueue-2” [_thread_in_native, id=2536]
0x0a430400 JavaThread “Keep-Alive-Timer” daemon [_thread_blocked, id=2524]
0x09b78400 JavaThread “thread applet-org.jdesktop.applet.util.JNLPAppletLauncher” [_thread_blocked, id=3300]
0x099e0c00 JavaThread “AWT-EventQueue-0” [_thread_blocked, id=3308]
0x099d0400 JavaThread “CacheCleanUpThread” daemon [_thread_blocked, id=2956]
0x08db5c00 JavaThread “traceMsgQueueThread” daemon [_thread_blocked, id=3452]
=>0x08d84c00 JavaThread “AWT-Windows” daemon [_thread_in_native, id=476]
0x08d84000 JavaThread “AWT-Shutdown” [_thread_blocked, id=3080]
0x08d82c00 JavaThread “Java2D Disposer” daemon [_thread_blocked, id=1868]
0x08cefc00 JavaThread “Low Memory Detector” daemon [_thread_blocked, id=3000]
0x08ceb000 JavaThread “CompilerThread0” daemon [_thread_blocked, id=1080]
0x08ce9c00 JavaThread “Attach Listener” daemon [_thread_blocked, id=2016]
0x08ce9000 JavaThread “Signal Dispatcher” daemon [_thread_blocked, id=3856]
0x08ce1000 JavaThread “Finalizer” daemon [_thread_blocked, id=2900]
0x08ce0400 JavaThread “Reference Handler” daemon [_thread_blocked, id=3152]
0x05839400 JavaThread “main” [_thread_blocked, id=972]

Other Threads:
0x08cdf000 VMThread [id=3220]
0x08cfa800 WatcherThread [id=1944]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
def new generation total 960K, used 322K [0x22990000, 0x22a90000, 0x22e70000)
eden space 896K, 28% used [0x22990000, 0x229d0ab8, 0x22a70000)
from space 64K, 100% used [0x22a80000, 0x22a90000, 0x22a90000)
to space 64K, 0% used [0x22a70000, 0x22a70000, 0x22a80000)
tenured generation total 8736K, used 5410K [0x22e70000, 0x236f8000, 0x26990000)
the space 8736K, 61% used [0x22e70000, 0x233b8958, 0x233b8a00, 0x236f8000)
compacting perm gen total 12288K, used 7221K [0x26990000, 0x27590000, 0x2a990000)
the space 12288K, 58% used [0x26990000, 0x2709d7a0, 0x2709d800, 0x27590000)
ro space 8192K, 62% used [0x2a990000, 0x2ae914a8, 0x2ae91600, 0x2b190000)
rw space 12288K, 52% used [0x2b190000, 0x2b7d7278, 0x2b7d7400, 0x2bd90000)

Dynamic libraries:
0x00400000 - 0x0049b000 C:\Program Files\Internet Explorer\iexplore.exe
0x7c900000 - 0x7c9b0000 C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c8f5000 C:\WINDOWS\system32\kernel32.dll
0x77dd0000 - 0x77e6b000 C:\WINDOWS\system32\ADVAPI32.dll


0x6d570000 - 0x6d583000 C:\Program Files\Java\jre1.6.0_03\bin\net.dll
0x6d590000 - 0x6d599000 C:\Program Files\Java\jre1.6.0_03\bin\nio.dll
0x09ed0000 - 0x09f0b000 C:\Program Files\Java\jre1.6.0_03\bin\regutils.dll

VM Arguments:
jvm_args: -Xbootclasspath/a:C:\PROGRA~1\Java\JRE16~3.0_0\lib\deploy.jar;C:\PROGRA~1\Java\JRE16~3.0_0\lib\plugin.jar -Xmx64m -Djavaplugin.maxHeapSize=64m -Xverify:remote -Djavaplugin.version=1.6.0_03 -Djavaplugin.nodotversion=160_03 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=C:\PROGRA~1\Java\JRE16~3.0_0 -Djava.ext.dirs=C:\PROGRA~1\Java\JRE16~3.0_0\lib\ext;C:\WINDOWS\Sun\Java\Deployment\Lib\Trusted -Dsun.java2d.noddraw=true -Djavaplugin.vm.options=-Djava.class.path=C:\PROGRA~1\Java\JRE16~3.0_0\classes -Xbootclasspath/a:C:\PROGRA~1\Java\JRE16~3.0_0\lib\deploy.jar;C:\PROGRA~1\Java\JRE16~3.0_0\lib\plugin.jar -Xmx64m -Djavaplugin.maxHeapSize=64m -Xverify:remote -Djavaplugin.version=1.6.0_03 -Djavaplugin.nodotversion=160_03 -Dbrowser=sun.plugin -DtrustProxy=true -Dapplication.home=C:\PROGRA~1\Java\JRE16~3.0_0 -Djava.ext.dirs=C:\PROGRA~1\Java\JRE16~3.0_0\lib\ext;C:\WINDOWS\Sun\Java\Deployment\Lib\Trusted -Dsun.java2d.noddraw=true
java_command:
Launcher Type: generic

Environment Variables:
CLASSPATH=.;C:\Program Files\Java\jre1.6.0_02\lib\ext\QTJava.zip
PATH=C:\PROGRA~1\Java\JRE16~3.0_0\bin;C:\Program Files\Internet Explorer;;C:\Program Files\Alias\Maya8.0\bin;c:\program files\imagemagick-6.2.9-q16;C:\utility\texmf\miktex\bin;C:\utility\Qt\4.0.1\bin;C:\Program Files\Alias\Maya7.0\bin;C:\utility\Perl\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\Intel\DMIX;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin;C:\Program Files\SSH Communications Security\SSH Secure Shell;C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\IDE;c:\utility\cygwin\bin;c:\utility\matlab6p1\bin\win32;C:\utility\gs\gs8.11\lib;C:\utility\gs\gs8.11\bin;C:\Program Files\Common Files\GTK\2.0\bin;c:\vr;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\QuickTime\QTSystem;.
USERNAME=luke
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 15 Model 4 Stepping 4, GenuineIntel

--------------- S Y S T E M ---------------

OS: Windows XP Build 2600 Service Pack 2

CPU:total 2 (2 cores per cpu, 1 threads per core) family 15 model 4 stepping 4, cmov, cx8, fxsr, mmx, sse, sse2, sse3

Memory: 4k page, physical 2095196k(1146968k free), swap 3510460k(2786320k free)

vm_info: Java HotSpot™ Client VM (1.6.0_03-b05) for windows-x86, built on Sep 24 2007 22:24:33 by “java_re” with unknown MS VC++:1310




The clue is surely in the lines:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.awt.windows.WToolkit.eventLoop()V+0
j sun.awt.windows.WToolkit.run()V+69
j java.lang.Thread.run()V+11
v ~StubRoutines::call_stub

I found the bug report http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5069955 on the Java Sun website. This seems very similar to the problem I am getting. However the problem should have been fixed in Java 1.4.2r6. I am getting it with Java 1.6.0r3.

Has anyone ever got this kind of error?

Luke

The above stack trace is very generic and indicates a crash in the AWT’s native code.

Do you see the same kinds of crashes with Java Web Start applications using JOGL?

My advice is to just sit tight for a few more weeks. An experimental build of the new Java Plug-In will become available soon which I believe will solve this and other reliability problems with advanced applets using JOGL and other technologies.