Closed
Bug 77579
Opened 24 years ago
Closed 23 years ago
Visiting web site with Flash content crashes browser
Categories
(Core Graveyard :: Java-Implemented Plugins, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
People
(Reporter: drapeau, Assigned: blackconnect)
References
()
Details
Attachments
(3 files)
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
Details | Diff | Splinter Review |
When visiting http://www.gabocorp.com/, if the Shockwave plugin is not installed
but Pluglet Engine is, the browser crashes.
This happened with a Netscape 6.01A tree on Solaris with the Pluglet Engine
installed. If the Pluglet Engine is removed, the browser behaves correctly,
bringing up the Plugin Downloader Plugin dialog.
Assignee | ||
Comment 1•24 years ago
|
||
I need to have more information about the reported problem
1. How do you run the browser?
2. May I see the log?
You can reproduce the problem by getting Netscape 6.01A from
http://www.sun.com/solaris/netscape/ and installing it, with the Blackwood Java
extensions. Then, launch the browser with the "netscape" script, go to the URL
in this bug, and *wham*, core dump (at least on my Solaris 7 box,
sioux.eng.sun.com).
I'll attach a stack trace later. I need to crash my browser first.
Stack trace from gdb of non-debug build:
#0 0xfedb6dec in strlen () from /usr/lib/libc.so.1
#1 0xfedffc98 in _doprnt () from /usr/lib/libc.so.1
#2 0xfee019cc in sprintf () from /usr/lib/libc.so.1
#3 0xfb609ecc in PlugletEngine::StartJVM () from
/export/local/Netscape6/components/libpluglet.so
#4 0xfb609f68 in PlugletEngine::GetJNIEnv () from
/export/local/Netscape6/components/libpluglet.so
#5 0xfb60aae0 in PlugletLoader::Initialize () from
/export/local/Netscape6/components/libpluglet.so
#6 0xfb60aca8 in PlugletLoader::GetMIMEDescription ()
from /export/local/Netscape6/components/libpluglet.so
#7 0xfb60a6b4 in PlugletFactory::Load () from
/export/local/Netscape6/components/libpluglet.so
#8 0xfb60bdb8 in PlugletsDir::LoadPluglets () from
/export/local/Netscape6/components/libpluglet.so
#9 0xfb60be34 in PlugletsDir::GetPlugletFactory ()
from /export/local/Netscape6/components/libpluglet.so
#10 0xfb609b68 in PlugletEngine::CreatePluginInstance ()
from /export/local/Netscape6/components/libpluglet.so
#11 0xfd407ff8 in nsPluginHostImpl::SetUpPluginInstance ()
from /export/local/Netscape6/components/libgkplugin.so
#12 0xfd407558 in nsPluginHostImpl::InstantiateEmbededPlugin ()
from /export/local/Netscape6/components/libgkplugin.so
#13 0xfc6c2320 in nsObjectFrame::InstantiatePlugin ()
from /export/local/Netscape6/components/libgklayout.so
#14 0xfc6c19c8 in nsObjectFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#15 0xfc6bceb0 in nsLineLayout::ReflowFrame () from
/export/local/Netscape6/components/libgklayout.so
#16 0xfc6b9af4 in nsInlineFrame::ReflowInlineFrame ()
from /export/local/Netscape6/components/libgklayout.so
#17 0xfc6b969c in nsInlineFrame::ReflowFrames ()
from /export/local/Netscape6/components/libgklayout.so
#18 0xfc6b9518 in nsInlineFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#19 0xfc6bceb0 in nsLineLayout::ReflowFrame () from
/export/local/Netscape6/components/libgklayout.so
#20 0xfc695404 in nsBlockFrame::ReflowInlineFrame ()
from /export/local/Netscape6/components/libgklayout.so
#21 0xfc6951fc in nsBlockFrame::DoReflowInlineFrames ()
from /export/local/Netscape6/components/libgklayout.so
#22 0xfc69506c in nsBlockFrame::DoReflowInlineFramesAuto ()
from /export/local/Netscape6/components/libgklayout.so
#23 0xfc694f3c in nsBlockFrame::ReflowInlineFrames ()
from /export/local/Netscape6/components/libgklayout.so
#24 0xfc693a58 in nsBlockFrame::ReflowLine () from
/export/local/Netscape6/components/libgklayout.so
#25 0xfc6932a4 in nsBlockFrame::ReflowDirtyLines ()
from /export/local/Netscape6/components/libgklayout.so
#26 0xfc691b6c in nsBlockFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#27 0xfc699f18 in nsBlockReflowContext::DoReflowBlock ()
from /export/local/Netscape6/components/libgklayout.so
#28 0xfc699930 in nsBlockReflowContext::ReflowBlock ()
from /export/local/Netscape6/components/libgklayout.so
#29 0xfc6949c4 in nsBlockFrame::ReflowBlockFrame ()
from /export/local/Netscape6/components/libgklayout.so
#30 0xfc6936c8 in nsBlockFrame::ReflowLine () from
/export/local/Netscape6/components/libgklayout.so
#31 0xfc6932a4 in nsBlockFrame::ReflowDirtyLines ()
from /export/local/Netscape6/components/libgklayout.so
#32 0xfc691b6c in nsBlockFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#33 0xfc69d070 in nsContainerFrame::ReflowChild ()
from /export/local/Netscape6/components/libgklayout.so
#34 0xfc6adf08 in CanvasFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#35 0xfc69d070 in nsContainerFrame::ReflowChild ()
from /export/local/Netscape6/components/libgklayout.so
#36 0xfc6e06a0 in ViewportFrame::Reflow () from
/export/local/Netscape6/components/libgklayout.so
#37 0xfc6af5b4 in nsHTMLReflowCommand::Dispatch ()
from /export/local/Netscape6/components/libgklayout.so
#38 0xfc6cfd18 in PresShell::ProcessReflowCommands ()
from /export/local/Netscape6/components/libgklayout.so
#39 0xfc6cf9c0 in PresShell::ResizeReflow () from
/export/local/Netscape6/components/libgklayout.so
#40 0xff215898 in PL_HandleEvent () from /export/local/Netscape6/./libxpcom.so
#41 0xff2157cc in PL_ProcessPendingEvents () from
/export/local/Netscape6/./libxpcom.so
#42 0xff216604 in nsEventQueueImpl::ProcessPendingEvents ()
from /export/local/Netscape6/./libxpcom.so
#43 0xfdfa5970 in nsAppShell::SetDispatchListener ()
from /export/local/Netscape6/components/libwidget_gtk.so
#44 0xfdfa5680 in keysym2ucs () from
/export/local/Netscape6/components/libwidget_gtk.so
#45 0xfdcf42a4 in g_io_channel_unix_get_fd ()
from /export/local/Netscape6/./dist/lib/libglib-1.2.so.0
#46 0xfdcf5d10 in g_source_remove_by_funcs_user_data ()
from /export/local/Netscape6/./dist/lib/libglib-1.2.so.0
#47 0xfdcf65b0 in g_source_remove_by_funcs_user_data ()
from /export/local/Netscape6/./dist/lib/libglib-1.2.so.0
#48 0xfdcf6ed8 in g_main_run () from
/export/local/Netscape6/./dist/lib/libglib-1.2.so.0
#49 0xfde4b44c in gtk_main () from
/export/local/Netscape6/./dist/lib/libgtk-1.2.so.0
#50 0xfdfa5f58 in nsAppShell::Run () from
/export/local/Netscape6/components/libwidget_gtk.so
#51 0xfec4def4 in nsAppShellService::Run () from
/export/local/Netscape6/components/libnsappshell.so
#52 0x16e2c in NS_CreateNativeAppSupport ()
#53 0x17318 in main ()
Assignee | ||
Comment 4•24 years ago
|
||
pluglets should not be available at all when 'netscape' script is used.
But they are available and this cause the reported problem.
(This is the old problem with LD_PRELOAD=libXm.so.
libXm should be loaded before libXt)
Plugets should be available *only* when 'netscape_pluglets' script is used.
The simplest fix for this bug is to remove libpluglet.so from bin/components
when 'netscape' script is running and to get it back when 'netscape_plgulets' is
used.
The other fix is to do not preload libXt and to do not have netscape_pluglets
script.
George, what is the status of "not preloading libXt for plugin module" bug?
Status: NEW → ASSIGNED
Igor: the bug to which you are referring is bug 51189. It was closed as
INVALID; after analysis, we determined that there's no way to prevent the
browser from dynamically linking libXt.so; the libgtkxtbin.so library makes Xt
calls and therefore needs that library.
Assignee | ||
Comment 6•24 years ago
|
||
Okey. netscape and netscape_pluglets scripts should be updated then.
Who is the owner of those scripts?
Ah, that last question, Igor, turns this bug into a non-Bugzilla bug, and
instead into a commercial product (Netscape 6) bug.
Before I ask you to file a BugTraq bug, though, will you please take the time
here to explain why this is causing the browser to crash? You mentioned it
briefly in an earlier comment of yours, but that comment did not have sufficient
detail to explain to somebody freshly looking at this bug.
Assignee | ||
Comment 8•24 years ago
|
||
> here to explain why this is causing the browser to crash?
Pluglet engine starts JVM.
It is important for SUN's implementation of AWT on solaris to have Xm loaded
before Xt.
In other case it drops core or exits the program.
Thus it is important for pluglets to have Xm loaded before Xt. (in other case we
have the reported problem)
Here is loading scenario:
Mozilla loads Xt for plugin module and does not load Xm at all.
Pluglets get loaded after plugin module. Xm get loaded after Xm. Result -
coredump.
The solution for this problem is to preload libXm.so. (LD_PRELOAD=libXm.so)
I was told that it cause some problems with SUN's JavaPlugin.
Now we have two scripts:
netscape - no LD_PRELOAD, no pluglets
netscape_pluglets - with LD_PRELOAD, with pluglets, with some JavaPlugin
problems.
The reason for the reported bug is that pluglet component is trying to work
no matter which script was used to lunch the browser.
Comment 10•23 years ago
|
||
Currently if system admins install ns6 with pluglet (Blackwood), all the users
will "have to" use netscape_pluglet script. Any work around?
Assignee | ||
Comment 11•23 years ago
|
||
Assignee | ||
Comment 12•23 years ago
|
||
Assignee | ||
Comment 13•23 years ago
|
||
Assignee | ||
Comment 14•23 years ago
|
||
My bad. I think that I was fixing the wrong problem.
I am working with j2sdk1_3_0_02.
libXt, libXm loading order does not crash the browser.
No CLASSPATH this was the reason for crash.
- If Xt got loaded before Xm here is what I get:
Runtime link error - it appears that libXt got loaded before libXm,
which is not allowed.
Exception in thread "main" java.lang.UnsatisfiedLinkError: exception occurred in
JNI_OnLoad
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1382)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1298)
at java.lang.Runtime.loadLibrary0(Runtime.java:749)
at java.lang.System.loadLibrary(System.java:820)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:53)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:41)
at sun.awt.DebugHelper.<clinit>(DebugHelper.java:29)
at java.awt.Component.<clinit>(Component.java:356)
at org.mozilla.pluglet.PlugletLoader.<clinit>(PlugletLoader.java:36)
Exception in thread "main" java.lang.NoClassDefFoundError
Exception in thread "main" java.lang.NoClassDefFoundError
No crash. Plugles does not work (it is expected behavior in the case libXm.so
is not preloaded)
We can predict that pluglets would not work before starting jvm.
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=36473
does it. It is doing the same checking as awt does. In case library loading
order is bad there would be no PlugletEngine.
- In case there is no pluglet API classes in the CLASSPATH the browser crashes.
---
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=36475
fixes the CLASSPATH problem and checks for library loading order.
Please review the suggested patch.
Assignee | ||
Comment 15•23 years ago
|
||
Yiming, may I ask you for a
favor?
Will you please review my patch
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=36475
Thanks,
Igor
Comment 16•23 years ago
|
||
looks good. Would try out the patch.
Assignee | ||
Comment 17•23 years ago
|
||
fix checked in.
thanks for review.
closing as fixed
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Comment 18•23 years ago
|
||
Verified with Mozilla 0.9.4 on Sparc Solaris 2.8
(Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:0.9.4+) Gecko/20010918)
Updated•13 years ago
|
Product: Core → Core Graveyard
You need to log in
before you can comment on or make changes to this bug.
Description
•