Closed
Bug 306872
Opened 20 years ago
Closed 20 years ago
Occasional hangs loading first Java applet (with recent trunk builds and the JEP)
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
RESOLVED
FIXED
People
(Reporter: smichaud, Assigned: jaas)
References
()
Details
(Keywords: fixed1.8)
Attachments
(4 files)
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050902 Firefox/1.0+
Build Identifier: Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8b4) Gecko/20050902 Firefox/1.0+
Recent versions of Firefox (for example DeerPark Alpha 2) and Camino
(for example Camino 0.9a2) sometimes hang as you're trying to load a
Java applet for the first time in a given browser session. (These
hangs actually take place as part of the Java Virtual Machine (the
"AWT libraries") is being loaded (which happens the first time you
load an applet in a given browser session).)
The hangs are most likely to occur on applets that take a long time to
load -- such as the NOAA radar looping applets.
Older Mozilla-family browsers (e.g. Firefox 1.0.X, Camino 0.8.X and
Mozilla 1.7.X) aren't effected.
This problem is caused by one or more Apple bugs. I'm about to release
a Java Embedding Plugin "nightly" (0.9.3+c) that works around them. I
hope to get it quickly landed on the trunk and (especially) the 1.8
branch, so that it will be included in Firefox 1.5 Beta 1 when that
comes out next week.
If you use gdb to "break into" a browser process that has experienced
one of these hangs, you will notice that a secondary thread is stuck
in JNI_OnLoad() (in libawt.jnilib). The Java Embedding Plugin has long
contained workarounds for _other_ Apple bugs/design-flaws that cause
hangs in JNI_OnLoad(). The "new" bug (or bugs) have existed for a long
time, but seem to have been triggered by recent changes in the
Mozilla-family browsers (probably the "fix" for Mozilla bug 128366,
which started loading the MRJPlugin.plugin on demand):
https://bugzilla.mozilla.org/show_bug.cgi?id=128366
This same bug has also been filed at the Java Embedding Plugin's Bugs
"tracker":
http://sourceforge.net/tracker/index.php?func=detail&aid=1280909&group_id=107955&atid=649116
Reproducible: Sometimes
Updated•20 years ago
|
Status: UNCONFIRMED → NEW
Ever confirmed: true
Flags: blocking1.8b4?
Comment 1•20 years ago
|
||
When it hangs, please run 'sample' for, say, 10 seconds like:
sample firefox 10
and attach the resulting file.
| Reporter | ||
Comment 2•20 years ago
|
||
I've just released JEP 0.9.3+c:
http://javaplugin.sourceforge.net/
Please test it before deciding whether or not to land it on the 1.8 branch
before Firefox 1.5 Beta 1 is released.
I do realize that it's risky to make non-trivial changes so close to the
release date. But I've tested JEP 0.9.3+c quite thoroughly. And the problems
that it fixes are rather nasty.
| Reporter | ||
Comment 3•20 years ago
|
||
> When it hangs, please run 'sample' for, say, 10 seconds like:
>
> sample firefox 10
>
> and attach the resulting file.
I'm not sure why you want this, but here it is. (I used Deer Park
Alpha 2 and JEP 0.9.3+b on OS X 10.4.2).
By the way, the "hangs" I'm talking about don't actually block (or
fully block) the main thread. NSEvents (and CFRunLoop input sources)
continue to be processed in the kCFRunLoopDefaultMode mode. But the
WaitNextEvent loop in the browser is blocked. So, though you have
access to the menu, you can't do anything to the current window except
close it (and when you do close it (directly or by quitting the
browser) you get a crash).
This NSEvent (and CFRunLoop) event processing takes place (on the main
thread) in the loop starting at line 983 (in the current, 0.9.3+c
version) of AppletView.m, in AppletView maybeCreateJavaVM.
(By the way, I notice that "sample" only seems interested in what's
happening on the main thread. So it misses the actual cause of the
"hang". I'll also append the output of "thread apply all bt" in gdb
from inside the "hung" process.)
| Reporter | ||
Comment 4•20 years ago
|
||
| Reporter | ||
Comment 5•20 years ago
|
||
In for a penny, in for a pound :-)
Here's the result of running "sample Camino 10" using Camino 0.9a2
with JEP 0.9.3+b on OS X 10.3.9 (I couldn't seem to get the hang to
happen in OS X 10.4.2).
Once again the main thread isn't (fully) blocked. And though some
kind of event loop in the browser clearly _is_ blocked, it isn't
(can't be) the WaitNextEvent loop. The visible symptoms are also
slightly different than with Deer Park: You can move the browser
window around (in which the "hang" has occurred), and you can resize
it. But when you do resize the window it goes completely blank
(white).
As with Deer Park, the menu is still accessible. And (on Panther and
Jaguar, but not Tiger) opening the menu breaks you out of the hang --
whether you're using Deer Park or Camino.
| Reporter | ||
Comment 6•20 years ago
|
||
Comment 7•20 years ago
|
||
So JEP 0.9.3+c fixes this?
| Reporter | ||
Comment 8•20 years ago
|
||
> So JEP 0.9.3+c fixes this?
Yes, it does.
Comment 9•20 years ago
|
||
we want to get this on the trunk and then we'll consider it for beta2 if all
looks well.
Flags: blocking1.8b5+
Flags: blocking1.8b4?
Flags: blocking1.8b4-
| Assignee | ||
Comment 10•20 years ago
|
||
JEP update that should fix this bug was landed on the trunk - leaving this bug
open for a branch landing if things work out
| Reporter | ||
Comment 11•20 years ago
|
||
The fix for this is now incorporated in version 0.9.4 of the Java Embedding
Plugin, which I've just released:
http://javaplugin.sourceforge.net/
Comment 12•20 years ago
|
||
please get the new version on the branch. thanks.
Assignee: nobody → joshmoz
| Assignee | ||
Comment 13•20 years ago
|
||
JEP 0.9.4+a landed on branch and trunk.
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Updated•3 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•