Closed Bug 21397 Opened 25 years ago Closed 25 years ago

[dogfood] crash closing multiple windows using Ctrl-W

Categories

(Core :: XUL, defect, P1)

x86
Windows NT
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: danm.moz, Assigned: danm.moz)

Details

(Whiteboard: [PDT+] 12/17)

This is currently a problem only on Windows, because everyone else is ignoring ^W. Launch Mozilla browser. Open a second browser window (File | New Navigator Window). Close it any way you like. Open yet another browser window. Click in the content area to set focus. Type ctrl-W. Crashes. The whole dance is necessary. Simpler crashes from ^W have already been fixed. See bug 20193.
Whiteboard: [PDT+]
Putting on the PDT+ radar. claudius, get us a stack trace please! Suggest for dogfood, disable control-w to avoid crash.
Here's a stack trace: PresShell::~PresShell() line 678 + 15 bytes PresShell::`scalar deleting destructor'() + 15 bytes PresShell::Release(PresShell * const 0x038d9870) line 614 + 138 bytes nsCOMPtr<nsIPresShell>::~nsCOMPtr<nsIPresShell>() line 434 nsXULKeyListenerImpl::HandleEventUsingKeyset(nsXULKeyListenerImpl * const 0x038f9df0, nsIDOMElement * 0x038f9530, nsIDOMKeyEvent * 0x03bf9910, eEventType eKeyPress, nsIDOMXULDocument * 0x038dac6c, int & 1) line 1549 + 34 bytes nsXULKeyListenerImpl::LocateAndExecuteKeyBinding(nsXULKeyListenerImpl * const 0x038f9df0, nsIDOMKeyEvent * 0x03bf9910, eEventType eKeyPress, nsIDOMXULDocument * 0x038dac6c, int & 1) line 1213 + 37 bytes nsXULKeyListenerImpl::DoKey(nsIDOMEvent * 0x03bf9914, eEventType eKeyPress) line 541 nsXULKeyListenerImpl::KeyPress(nsIDOMEvent * 0x03bf9914) line 460 nsEventListenerManager::HandleEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 965 + 17 bytes nsXULDocument::HandleDOMEvent(nsXULDocument * const 0x038dac60, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 1796 nsXULElement::HandleDOMEvent(nsXULElement * const 0x038d9190, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2663 + 39 bytes nsXULElement::HandleDOMEvent(nsXULElement * const 0x039bfd30, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2661 nsXULElement::HandleDOMEvent(nsXULElement * const 0x039bfa80, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2661 nsXULElement::HandleDOMEvent(nsXULElement * const 0x039bf770, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2661 nsXULElement::HandleDOMEvent(nsXULElement * const 0x039bf4a0, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2661 nsXULElement::HandleChromeEvent(nsXULElement * const 0x039bf4c8, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 3591 GlobalWindowImpl::HandleDOMEvent(GlobalWindowImpl * const 0x03b0de14, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2968 nsDocument::HandleDOMEvent(nsDocument * const 0x03b64df0, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 2397 nsHTMLHtmlElement::HandleDOMEvent(nsHTMLHtmlElement * const 0x03b6409c, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 192 + 41 bytes nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 775 nsHTMLBodyElement::HandleDOMEvent(nsHTMLBodyElement * const 0x03a18dbc, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 723 nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 775 nsHTMLTableElement::HandleDOMEvent(nsHTMLTableElement * const 0x03b775ec, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 1303 nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 775 nsHTMLTableSectionElement::HandleDOMEvent(nsHTMLTableSectionElement * const 0x03b772bc, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 374 nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 775 nsHTMLTableRowElement::HandleDOMEvent(nsHTMLTableRowElement * const 0x03b7723c, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 739 nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 775 nsHTMLTableCellElement::HandleDOMEvent(nsHTMLTableCellElement * const 0x03b77080, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 4, nsEventStatus * 0x0012fac8) line 559 nsGenericElement::HandleDOMEvent(nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x0012f8d4, unsigned int 1, nsEventStatus * 0x0012fac8) line 775 nsHTMLImageElement::HandleDOMEvent(nsHTMLImageElement * const 0x03b6dd2c, nsIPresContext * 0x03b65550, nsEvent * 0x0012fb5c, nsIDOMEvent * * 0x00000000, unsigned int 1, nsEventStatus * 0x0012fac8) line 338 PresShell::HandleEvent(PresShell * const 0x03a11614, nsIView * 0x03b6f670, nsGUIEvent * 0x0012fb5c, nsEventStatus * 0x0012fac8) line 2563 + 39 bytes nsView::HandleEvent(nsView * const 0x03b6f670, nsGUIEvent * 0x0012fb5c, unsigned int 8, nsEventStatus * 0x0012fac8, int & 0) line 841 nsView::HandleEvent(nsView * const 0x03b6e490, nsGUIEvent * 0x0012fb5c, unsigned int 8, nsEventStatus * 0x0012fac8, int & 0) line 826 nsView::HandleEvent(nsView * const 0x03a11b50, nsGUIEvent * 0x0012fb5c, unsigned int 28, nsEventStatus * 0x0012fac8, int & 0) line 826 nsViewManager::DispatchEvent(nsViewManager * const 0x03a11f20, nsGUIEvent * 0x0012fb5c, nsEventStatus * 0x0012fac8) line 1678 HandleEvent(nsGUIEvent * 0x0012fb5c) line 69 nsWindow::DispatchEvent(nsWindow * const 0x03b6e364, nsGUIEvent * 0x0012fb5c, nsEventStatus & nsEventStatus_eIgnore) line 421 + 10 bytes nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012fb5c) line 442 nsWindow::DispatchKeyEvent(unsigned int 131, unsigned short 119, unsigned int 0) line 2167 + 15 bytes nsWindow::OnChar(unsigned int 23, unsigned int 0, unsigned char 0) line 2373 nsWindow::ProcessMessage(unsigned int 258, unsigned int 23, long 1114113, long * 0x0012fdc8) line 2520 + 33 bytes nsWindow::WindowProc(HWND__ * 0x04a60402, unsigned int 258, unsigned int 23, long 1114113) line 608 + 27 bytes USER32! 77e71820()
Priority: P3 → P1
Whiteboard: [PDT+] → [PDT+] need estimated completion date.
Target Milestone: M12
target m12, p1. requested completion date in status whiteboard.
I can reproduce this with just one browser window and hitting ctrl-w
Is this release note-able? If there's an easy fix on the way, fine. If not, I think users will figure out not to use ctrl-w pretty quickly.
Just to point out, using a recent build 1999120113 I'm able to reproduce this VERY easily -- simply press CTL-W *while* mozilla.exe is loading and it crashes pretty reliably.
On nightly build 1999121008, I get this behavior whenever I click in the page area (give it focus) and hit C-w or C-q.
Status: NEW → ASSIGNED
Whiteboard: [PDT+] need estimated completion date. → [PDT+] 12/17
About above comments on easier ways to crash with ^W: I suspect these are all bug 20193, as mentioned in the opening comments for this bug. That was fixed once on 6 Dec, and again (same symptom, different problem) 10 Dec.
I'm getting a recurring bug that I can't seem to reliably reproduce, which is after a new window has been open for some time, when I click on the "X" or File - Close Window to close the window I get a crash... Usually the closing window will gray out first, then not respond, while I can browse in the first window. Then if I click on the window that didn't close properly mozilla crashes. Currently I'm getting this on 1999121208 but have seen it for a week or so. This seems like it might be related...
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → FIXED
Summary: [dogfood?] crash closing multiple windows using Ctrl-W → [dogfood] crash closing multiple windows using Ctrl-W
Deathgripped a couple of event handler objects; made it stop crashing. I doubt this fixes jelwell's crash mentioned just above.
I filed another bug for my window closing problem: bug 21731. Thanks.
Status: RESOLVED → VERIFIED
VERIFIED fixed in the 1999121408 build.
Blocks: 22176
No longer blocks: 22176
You need to log in before you can comment on or make changes to this bug.