Closed
Bug 86645
Opened 24 years ago
Closed 24 years ago
M0.9.1 crashes at the 2nd "Default Plugin" window call
Categories
(Core Graveyard :: Plug-ins, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
mozilla0.9.3
People
(Reporter: jakobus, Assigned: srgchrpv)
References
()
Details
(Keywords: crash, Whiteboard: approved for 0.9.3)
Attachments
(3 files)
424 bytes,
patch
|
Details | Diff | Splinter Review | |
1.84 KB,
patch
|
Details | Diff | Splinter Review | |
856 bytes,
patch
|
Details | Diff | Splinter Review |
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; OpenVMS 0 Digital_Personal_WorkStation_; en-US;
rv:0.9.1) Gecko/20010606
BuildID: 2001060807
After entering the page http://www.investars.com the window "Default plugin"
appears which informs that the plugin for application/x-shockwave-flash isn't
available. I selected "CANCEL" and the page "Investment Bank Rankings". After
this page showed up I selected "Home" then Mozilla crashes.
Reproducible: Always
Steps to Reproduce:
1. www.investars.com
2. www.investars.com/analystranking.asp
3. www.investars.com/home.asp
Actual Results: Mozilla crashes
I start Mozilla from a terminal window, after crashing the output is:
Document http://www.investars.com/analystranking.asp loaded successfully
Document http://www.investars.com/home.asp loaded successfully
Gdk-ERROR **: BadDrawable (invalid Pixmap or Window parameter)
serial 115 error_code 9 request_code 62 minor_code 0
%CXXL-F-TERMINATE, terminate() or unexpected() called
%TRACE-F-TRACEBACK, symbolic stack dump follows
image module routine line rel PC abs PC
VMS_SYSLIB 0 000000000003150C 000000000011550C
VMS_SYSLIB 0 00000000000335BC 00000000001175BC
----- above condition handler called with exception 004081A4:
%CMA-F-EXIT_THREAD, current thread has been requested to exit
----- end of exception message
0 FFFFFFFF80083C3C FFFFFFFF80083C3C
PTHREAD$RTL 0 0000000000021334 000000007BBE3334
PTHREAD$RTL 0 000000000002E7D8 000000007BBF07D8
PTHREAD$RTL 0 0000000000045C9C 000000007BC07C9C
0 FFFFFFFF800EC254 FFFFFFFF800EC254
0 FFFFFFFF841B46FC FFFFFFFF841B46FC
0 FFFFFFFF809FE3C8 FFFFFFFF809FE3C8
0 FFFFFFFF809FE414 FFFFFFFF809FE414
$
The error code looks similar to what serge has been looking at recently. Serge,
could it be that your fix missed OpenVMS build somehow?
Assignee | ||
Comment 3•24 years ago
|
||
Yes, something wrong is going on with OpenVMS R11R5 XSync call :(
see the tail of bug76505, I do not have OpenVMS around, I cannot debug it.
nevertheless after we'll remove default plugin bug83754 this problem will go
away. For now the workaround probably is just delete nullplugin dll from plugins
directory.
ccing colin@theblakes.com
Comment 4•24 years ago
|
||
If the null plugin is going away, what do we do with this bug report? Mark
it as WONTFIX?
There is a discussion on removing the default plugin as a whole. Making
dependency for now.
Depends on: 83754
Comment 8•24 years ago
|
||
Here's some more info on the baddrawable that's still happening on OpenVMS.
The problem only happens if I DO NOT dismiss the "default plugin" box. Then
when I either reload the page or go away and then come back to the page,
there is a high chance that I will get the baddrawable error.
Now here's the part that was clouding the issue. Quite often the "default
plugin" box will appear, but then immediately the main Mozilla window will
be brought to the front causing the "default plugin" window to "disappear".
Once I realised that the "default plugin" window was hiding behind the main
Mozilla window, I found that if I always dismiss the "default plugin" window
(by clicking on CANCEL since OpenVMS doesn't have Java yet), then I can't
get the baddrawable error to reproduce. Unfortunately I can not reproduce
this on UNIX.
There is something else though. And this does reproduce on UNIX. Go to a page
that causes the "default plugin" window to appear (such as
http://www.eifl.org.uk when you have Java enabled but you don't have a
Java plugin). Don't click on OK or CANCEL, just hit reload. Now the "default
plugin" box has gone. Reload again and the box will re-appear. Repeated reloads
will toggle the "default plugin" box on and off. Is this expected?
Comment 9•24 years ago
|
||
Homing in some more on what I said above:
The BADDRAWABLE only happens if I DO NOT dismiss the "default plugin" box.
Then if I go to another page and then click BACK, I get the BADDRAWABLE.
Its like the dialog box (the "default plugin" box) has been orphaned.
Should any open dialog boxes be dismissed when the user destroys the page
to which they belong?
Does any of this make sense to anyone???
Comment 10•24 years ago
|
||
Theo, I'm 99% sure that all the BADDRAWABLE errors are a result of the
nullplugin code misbehaving. Most of the null plugin dialogs boxes
in my experience are for Java applets, and you can prevent these from
even appearing by disabling Java in the preferences (prefs->advanced).
I've done this and I've found M0.9.2 to be MUCH more stable. Its not leaking
as much memory either.
Comment 11•24 years ago
|
||
The nullplugin has no specific target on java applets. It just displays a box
saying that a plugin which would play on the specific page is missing, Java
being only one among others. See serge's comment on 2001-06-19 12:26 for
possible workaround. The fact that you see much of improvement after disabling
Java must be a different issue.
Reporter | ||
Comment 12•24 years ago
|
||
I started to install OpenVMS V7.3 on my workstation in parallel to OpenVMS
V7.2-1 the new version includes DECwindows Motif 1.2-6 (til now I'm using 1.2-5
I don't know anything about the enhancements) and
Java(TM) 2 Runtime Environment, Standard Edition
Classic VM (build 1.3.0-1, 04/12/2001-12:42, native threads, jit)
I guess I'm able to test Mozilla under the new configuration next week.
Comment 13•24 years ago
|
||
Note that even with the installation of Java 1.3.0-1, you still don't get
Java support in Mozilla. Java 1.3.0-1 on OpenVMS does NOT include OJI, and
that's what we need.
Comment 14•24 years ago
|
||
> The nullplugin has no specific target on java applets.
OK, well maybe the problem is caused by the fact that we want to display
the null plugin box but its already displayed. I see in the code that we
detect that situation and don't create a second dialog.
I'm going to have to try harder to reproduce this on Linux.
Comment 15•24 years ago
|
||
That used to be a problem, and we took some special precautious measures to
avoid displaying the dialog more than once on Windows for sure, and I beleive
serge did it on Unix side.
Comment 16•24 years ago
|
||
I found the problem. In destroyPixmap, we don't clear nullPluginGdkPixmap, and
so next time we create the null plugin we think we already have the pixmap and
so don't create a new one. This is what leads to the "BadDrawable (invalid
Pixmap or Window parameter)" error.
I guess it depends upon how long it takes the memory for the pixmap to get
recycled whether or not the error is detected.
I'll attach a patch next. With this patch, I no longer crash.
Want me to check it in?
Comment 17•24 years ago
|
||
Assignee | ||
Comment 18•24 years ago
|
||
colin, you are right, gdk_pixmap_unref() calls XFreePixmap if ref_count == 0
and the next access to nullPluginGdkPixmap should fail,
but it does not crash on linux, the platform I've tested this code:(
The reason I used static declarator for nullPluginGdkPixmap was the performance,
of course. I tried to call gdk_pixmap_create_from_xpm_d() just ones, but I've
messed up with gdk_pixmap_unref() call:(
Maybe it valid do not call gdk_pixmap_unref() at all, because we are using only
one pixmap instance during whole life of the client. Could you try comment out
this call and see how it'll work? Thanks.
Comment 19•24 years ago
|
||
Removing the call to gdk_pixmap_unref also fixed the problem. That doesn't
leave much in destroyPixmap now!
Who is going to fix this? Now I finally know what it is, I don't want it to
slip through the cracks. I can sumbit a patch if someone will review/approve.
Assignee | ||
Comment 20•24 years ago
|
||
Good finding, thanks Colin. Now I understand the crash in bug 76505 on linux,
but I don't get it how XSync() after XtUnregisterDrawable() fixes that crash at
least linux & hpux11 bits, I've tested on. Anyway, without gdk_pixmap_unref()
which actually calls XFreePixmap(), it looks like we can throw away XSync(), and
all work just fine. The patch is following.
Assignee | ||
Comment 21•24 years ago
|
||
Comment 22•24 years ago
|
||
With the XSync call removed (and the pixmap not deleted), I still crap out
with a BadDrawable. So the XSync call IS needed.
Assignee | ||
Comment 23•24 years ago
|
||
well, in this case we have to leave gtkxtbin.c as it is now.
Comment 24•24 years ago
|
||
Yep, I can live with the XSync call :-)
Mozilla is so stable with the pixmap fix. I was up to almost 200 sites loaded
with Chris Hofmann's browser buster before I stopped it to try out the new
patch. Previously I could only get to about 50-60 max. Theo, you're gonna love
0.9.3 :-)
Assignee | ||
Comment 25•24 years ago
|
||
Reporter | ||
Comment 26•24 years ago
|
||
Colin I'm impressed by your engagement !!!
Thanks
Comment 27•24 years ago
|
||
sr=blizzard, a=blizzard on behalf of drivers for 0.9.3
Whiteboard: approved for 0.9.3
Assignee | ||
Comment 29•24 years ago
|
||
Checking in npshell.c;
/cvsroot/mozilla/modules/plugin/default/unix/npshell.c,v <-- npshell.c
new revision: 1.13; previous revision: 1.12
done
Checking in nullplugin.c;
/cvsroot/mozilla/modules/plugin/default/unix/nullplugin.c,v <-- nullplugin.c
new revision: 1.8; previous revision: 1.7
done
---
FIXED
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla0.9.3
Did this patch get checked in to the new plugin directory structure as well?
(Weren't the RCS files copied already?)
Assignee | ||
Comment 31•24 years ago
|
||
Checking in npshell.c;
/cvsroot/mozilla/modules/plugin/samples/default/unix/npshell.c,v <-- npshell.c
new revision: 1.13; previous revision: 1.12
done
Checking in nullplugin.c;
/cvsroot/mozilla/modules/plugin/samples/default/unix/nullplugin.c,v <--
nullplugin.c
new revision: 1.8; previous revision: 1.7
done
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
•