Closed Bug 435521 Opened 16 years ago Closed 12 years ago

Crash in [@ GeckoNSMenu performKeyEquivalent] when rapidly cycling DM window

Categories

(Core :: Widget: Cocoa, defect, P1)

x86
macOS
defect

Tracking

()

RESOLVED FIXED

People

(Reporter: marcia, Assigned: smichaud)

Details

(Keywords: crash)

Crash Data

Attachments

(2 files, 4 obsolete files)

Seen while testing Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9) Gecko/2008051202 Firefox/3.0.

STR:
1. Populate Download Manager with about 50-60 downloads.
2. While the list is loading rapidly press the Command and J key.
3. Crash. Report is http://crash-stats.mozilla.com/report/index/36f8be63-292d-11dd-9874-001a4bd46e84?p=1

I may have been holding down the Command J and rapidly pressing the J key, but I am not 100% sure.
Severity: normal → critical
Summary: Crash in GeckoNSMenu performKeyEquivalent when rapidly cycling DM window → Crash in [@ GeckoNSMenu performKeyEquivalent] when rapidly cycling DM window
Marcia, your report seems plausible ... but I can't reproduce it.  (I
tested on OS X 10.5.2 with about 50 items in the Download Manager
window.  I held down 'command' while rapidly pressing 'j'.)

Are you able to reproduce it at will?  If so, can you tell me more
about what you need to do to make the crashes happen?
Severity: critical → normal
Severity: normal → critical
Steven: I believe that Stephen was able to reproduce it rather easily. One thing we noticed while trying to get it to crash on Friday is when it doesn't, the "Tools" menu item flashes and we could no longer open the Download Manager window.
This crash (at the address in Marcia's crash report) accounts for about 45 of the ~5200 reports [@ nsObjCExceptionLogAbort(NSException*)].

fwiw, I *can't* reproduce, but stephend definitely can (I watched!). He's on 10.4, but Marcia was on 10.5 when she reported. For me (on 10.5), the key command just stops working eventually while holding it down and the download manager no longer shows/disappears.


For posterity:

Crashing Thread
Frame 	Module 	Signature [Expand] 	Source
0 	XUL 	nsObjCExceptionLogAbort 	mozilla/widget/src/cocoa/nsMenuBarX.mm:138
1 	XUL 	-[GeckoNSMenu performKeyEquivalent:] 	mozilla/widget/src/cocoa/nsMenuBarX.mm:977
2 	AppKit 	-[NSApplication _handleKeyEquivalent:] 	
3 	AppKit 	-[NSApplication sendEvent:] 	
4 	AppKit 	-[NSApplication run] 	
5 	XUL 	nsAppShell::Run 	mozilla/widget/src/cocoa/nsAppShell.mm:591
6 	XUL 	nsAppStartup::Run 	mozilla/toolkit/components/startup/src/nsAppStartup.cpp:181
7 	XUL 	XRE_main 	mozilla/toolkit/xre/nsAppRunner.cpp:3170
8 	firefox-bin 	main 	mozilla/browser/app/nsBrowserApp.cpp:158
9 	firefox-bin 	start 	crt.c:272
10 	firefox-bin 	start 	
11 		@0x0 	
I lied. I can reliably reproduce this using Firefox 3 RC 1 but less-reliably reproduce it using Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9pre) Gecko/2008052704 Minefield/3.0pre (the latest nightly). It's still reproducible, but it's more common for me to get the "key command stop working" bug than the crash.

RC1: bp-3a2e09a8-2c33-11dd-b314-001a4bd46e84
Nightly: bp-6ca9e5c0-2c33-11dd-b9c4-001cc45a2c28
Now I've got it -- I can reproduce the crashes if I press 'command'
and then _hold down the 'j' key_ (which of course makes it repeat).
Assignee: joshmoz → smichaud
Priority: -- → P1
Many of these 562 aren't exactly the same crash (they have somewhat
different stacks).  But there's a chance that if I can fix this one
(which is likely since I can now reproduce it), the others may get
fixed too.
Here's a gdb stack trace of the assertion that triggers the crash, and
then of the crash itself.

(I find the crashes easier to reproduce if I first maximize the
Download Manager window.  Then I just press 'command' and hold down
the 'j' key.)
Attached patch Fix (hg) (obsolete) — Splinter Review
I've finally had a chance to get back to this.

Here's a fix.
Attachment #329924 - Flags: review?(joshmoz)
Attached patch Fix (cvs) (obsolete) — Splinter Review
And here's a tryserver build made with the cvs patch:

https://build.mozilla.org/tryserver-builds/2008-07-16_15:31-smichaud@pobox.com-bugzilla435521-cvs/smichaud@pobox.com-bugzilla435521-cvs-firefox-try-mac.dmg

(I tried but failed to do an hg tryserver build.  The tryserver now
claims to support building from hg patches ... but apparently that's
not quite true yet.)

Marcia (and others), please try this build and let me know your
results.
Attachment #329925 - Flags: review?(joshmoz)
Steven: In my initial test running Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.5; en-US; rv:1.9.0.2pre) Gecko/2008071615 Minefield/3.0.2pre, things looked very smooth when cycling rapidy through DM. I compared this to the FF 3.0.1 build, where I was quite easily able to get in a funky state (no crash) after a few key cycles. More tests to come on PPC and Tiger, but so far this looks good.
Attached patch Fix rev1 (revise comments) (obsolete) — Splinter Review
Attachment #329924 - Attachment is obsolete: true
Attachment #329924 - Flags: review?(joshmoz)
Attached patch Fix rev1 cvs (revise comments) (obsolete) — Splinter Review
I've done more tests and found a much stronger reason to avoid
returning nil from [GeckoNSMenu itemAtIndex:] -- doing so quickly
causes the cmd-j key combination to stop working.  So I've revised my
comments.  The code hasn't changed.
Attachment #329925 - Attachment is obsolete: true
Attachment #329925 - Flags: review?(joshmoz)
Attachment #330585 - Flags: review?(joshmoz)
Attachment #330586 - Flags: review?(joshmoz)
Attachment #330585 - Attachment is obsolete: true
Attachment #330585 - Flags: review?(joshmoz)
Attachment #330586 - Attachment is obsolete: true
Attachment #330586 - Flags: review?(joshmoz)
Testing on OS X 10.4.11, I found that you can still crash (in a
slightly different location), even with my current patch.  So I'll need
to revise the patch.
Sorry, I forgot about this.

I'll get back to working on it.
I can no longer reproduce this, either on trunk or on the 1.9.0 branch
(in the equivalent of Monday's nightlies, testing on OS X 10.5.5).

Can you, Marcia?  Or anyone else?
(In reply to comment #16)
> I can no longer reproduce this, either on trunk or on the 1.9.0 branch
> (in the equivalent of Monday's nightlies, testing on OS X 10.5.5).
> 
> Can you, Marcia?  Or anyone else?

Yes, both of us can, using Minefield; it crashes within ~ 3 or so seconds.
Actually, I *can* still reproduce it.  It's just gotten a lot harder
to do so in gdb.

Besides what I already described in comment #8, here's what I
(apparently) need to do in addition:  After holding down cmd-j for a
while, let go the cmd key (while still holding down the j key).  Then
press down the cmd key again and hold it.  Then let go the j key
(while still holding down the cmd key) and press it (the j key) down
again (and hold it).  A few cycles of this are sufficient to give me a
crash (even running in gdb).  Go figure.
Flags: wanted1.9.1+
Flags: blocking1.9.1?
Flags: blocking1.9.1-
This bug's crash can also be reproduced using the second STR
(00a5308a-fdf6-4b20-a5f6-93b762090210) in bug 477475 comment #9.
Marcia and Stephen:

Josh's patch from bug 477475 comment #30 (with tryserver build) might also fix this bug.  Please try it out and let us know.

Of course, please also make sure you can still reproduce this bug in current nightlies.
(In reply to comment #20)

1) Still able to reproduce the crash using today's Shiretoko nightly on 10.4 at will.
2) Using Josh's tryserver build from bug 477475 comment #30, I no longer can reproduce the crash (but there are various other problems remaining such as being unable to bring up the Downloads window, and/or being able to type in the location bar, however those are separate issues).
Stephen, please test with today's Minefield nightly.

Tryserver builds are based on trunk code, so that needs to be the baseline for your tests.
(In reply to comment #22)
> Stephen, please test with today's Minefield nightly.
> 
> Tryserver builds are based on trunk code, so that needs to be the baseline for
> your tests.

Sure, ok: http://crash-stats.mozilla.com/report/index/29ab3033-d5ad-4243-8cc8-2f0c32090218?p=1; trunk still crashes there.
Status: NEW → ASSIGNED
Crash Signature: [@ GeckoNSMenu performKeyEquivalent]
I searched for the past 4 weeks and all crashes are in some version of 3.0. Since there is nothing in a current version, resolving as fixed.
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: