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)

Sun
Solaris
defect
Not set
major

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: drapeau, Assigned: blackconnect)

References

()

Details

Attachments

(3 files)

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.
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 ()
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.
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.
> 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.
Changing QA contact
QA Contact: geetha.vaidyanaathan → avm
Currently if system admins install ns6 with pluglet (Blackwood), all the users will "have to" use netscape_pluglet script. Any work around?
Attached patch fix for the bug (deleted) — Splinter Review
Attached patch real fix for the bug (deleted) — Splinter Review
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.
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
looks good. Would try out the patch.
fix checked in. thanks for review. closing as fixed
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
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)
Mark VERIFIED according to Vladimir's comment.
Status: RESOLVED → VERIFIED
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: