Closed Bug 131841 Opened 23 years ago Closed 23 years ago

Crash on transition from secure to normal site - [@ nsCOMPtr_base::assign_with_AddRef] [@ nsDOMWindowList::GetLength]

Categories

(Core :: DOM: Core & HTML, defect, P1)

defect

Tracking

()

VERIFIED FIXED
mozilla1.0

People

(Reporter: bht237, Assigned: jst)

Details

(6 keywords, Whiteboard: [FIXED ON TRUNK][ADT1 RTM],custrtm-)

Crash Data

Attachments

(4 files, 2 obsolete files)

This is created as offspring from bug 102341. The crash occurrs at exactly the same point, however the stack trace seems to indicate that it is a different problem now. A testcase is not yet available. From past experience I know that during creation of a testcase from this crash scenario, the problem tends to slip away in the simplification process of creating the testcase. So I hope the problem can be diagnosed and fixed from the stacktrace information alone. talkback 4156951 filed on the 17th. The stack for that talkback is: nsDOMWindowList::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsDOMWindowList.cpp, line 107] GlobalWindowImpl::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 1699] XPTC_InvokeByIndex [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, line 106] XPCWrappedNative::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2027] XPC_WN_GetterSetter [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, line 1299] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 790] js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 881] js_GetProperty [d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 2503] js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2578] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 806] nsXPCWrappedJSClass::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp, line 1195] nsXPCWrappedJS::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp, line 430] PrepareAndDispatch [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 117] SharedStub [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 139] nsEventListenerManager::HandleEventSubType [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1218] nsEventListenerManager::HandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1737] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3457] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleChromeEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 4680] GlobalWindowImpl::HandleDOMEvent [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 687] nsDocument::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3231] nsEventStateManager::PreHandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 487] PresShell::HandleEventInternal [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6051] PresShell::HandleEvent [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5979] nsViewManager::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2043] nsView::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 306] nsViewManager::DispatchEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1863] HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 83] nsWindow::DispatchEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 869] nsWindow::DispatchWindowEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 886] nsWindow::DispatchFocus [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4903] nsWindow::ProcessMessage [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3734] nsWindow::WindowProc [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 1131] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894)
Please don't plus bugs. Bringing this down to a nomination of nsbeta1 and sending to DOM 0. Also nominating for a release in the past is a bit silly, so nominating for 1.0.
Assignee: asa → jst
Component: Browser-General → DOM Level 0
QA Contact: doronr → desale
my money says aLength == 0.
New talkback incident TB4246433Z filed on 2002-03-20. Could someone please add it to this bug. Many thanks.
New talkback incident TB4250687K filed on 2002-03-20. It appears I can get 3 different crash locations: GKCONTENT.DLL, JSDOM.DLL and XPCOM.DLL Could someone please add it to this bug. Many thanks.
New talkback incident TB4251527E filed on 2002-03-20. It appears I can get 4 different crash locations: GKCONTENT.DLL, JSDOM.DLL, XPCOM.DLL and <unknown> Could someone please add it to this bug. Many thanks.
Attached file Testcase 1 (zip file)
This testcase repoduces the crash in GKCONTENT.DLL, 1 out of the 4 possible crashes. Instructions how to set it up are included in one of the files. I wish you all the best with this.
Changing priority to match bug 131841, which is the same issue but with other stack traces and could not be reproduced with its own testcase. IMHO it would be ideal to solve this case without delay after the experience with bug 131841 since Sept 2001 and the fact that I came across 4 different crashes when I wrote the testcase.
Priority: -- → P1
Keywords: helpwanted
This bug would benefit from a hosted version of the testcase so that others can confirm it. Currently the testcase is in an attached zip file. Any help from someone who can modify and upload the files to a conventional and a secure server would be highly appreciated.
Symptoms have changed. Refer to talkback TB4371676E Testcase 1 is no longer reproducing at my end. Need new testcase if required. The change was probably caused by the fix of bug 131725.
Confirming bug to new and adding reporters Talkback incidents. Here are his incidents in the order he has posted them in this bug: Incident ID 4246433 Stack Signature nsEventStateManager::ResetBrowseWithCaret 6a949de0 Trigger Time 2002-03-19 22:11:02 Email Address bht@actrix.gen.nz URL visited Build ID 2002031711 Product ID MozillaTrunk Platform Operating System Win32 Module Trigger Reason Access violation User Comments Transition from secure to normal site Refer to: http://bugzilla.mozilla.org/show_bug.cgi?id=131841 Stack Trace nsEventStateManager::ResetBrowseWithCaret [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 4521] nsEventStateManager::PreHandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 508] PresShell::HandleEventInternal [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6051] PresShell::HandleEvent [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5979] nsViewManager::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2043] nsView::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 306] nsViewManager::DispatchEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1863] HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 83] nsWindow::DispatchEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 869] nsWindow::DispatchWindowEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 886] nsWindow::DispatchFocus [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4903] nsWindow::ProcessMessage [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3734] nsWindow::WindowProc [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 1131] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894) ======================================================================== Incident ID 4250687 Stack Signature nsCOMPtr_base::assign_with_AddRef 1dbf7d71 Trigger Time 2002-03-20 01:54:12 Email Address bht@actrix.gen.nz URL visited Build ID 2002031711 Product ID MozillaTrunk Platform Operating System Win32 Module Trigger Reason Access violation User Comments Refer to http://bugzilla.mozilla.org/show_bug.cgi?id=131841 During work attempting to make a testcase Stack Trace nsCOMPtr_base::assign_with_AddRef [d:\builds\seamonkey\mozilla\xpcom\glue\nsCOMPtr.cpp, line 74] PresShell::ProcessReflowCommands [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6383] PresShell::ProcessReflowCommands [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6383] PresShell::FlushPendingNotifications [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5053] nsDocument::FlushPendingNotifications [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3421] nsHTMLDocument::FlushPendingNotifications [d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLDocument.cpp, line 1496] nsDOMWindowList::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsDOMWindowList.cpp, line 103] GlobalWindowImpl::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 1699] XPTC_InvokeByIndex [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, line 106] XPCWrappedNative::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2027] XPC_WN_GetterSetter [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, line 1299] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 790] js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 881] js_GetProperty [d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 2503] js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2578] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 806] nsXPCWrappedJSClass::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp, line 1195] nsXPCWrappedJS::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp, line 430] PrepareAndDispatch [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 117] SharedStub [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 139] nsEventListenerManager::HandleEventSubType [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1218] nsEventListenerManager::HandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1737] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3457] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleChromeEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 4680] GlobalWindowImpl::HandleDOMEvent [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 687] nsDocument::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3231] nsEventStateManager::PreHandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 487] PresShell::HandleEventInternal [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6051] PresShell::HandleEvent [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5979] nsViewManager::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2043] nsView::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 306] nsViewManager::DispatchEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1863] HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 83] nsWindow::DispatchEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 869] nsWindow::DispatchWindowEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 886] nsWindow::DispatchFocus [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4903] nsWindow::ProcessMessage [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3734] nsWindow::WindowProc [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 1131] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894) ==================================================== Incident ID 4251527 Stack Signature 0x025e278f ce1a1fa1 Trigger Time 2002-03-20 02:41:36 Email Address bht@actrix.gen.nz URL visited Build ID 2002031711 Product ID MozillaTrunk Platform Operating System Win32 Module Trigger Reason Access violation User Comments Refer to http://bugzilla.mozilla.org/show_bug.cgi?id=131841 while working on a testcase Stack Trace 0x025e278f PresShell::ProcessReflowCommands [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6383] PresShell::FlushPendingNotifications [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5053] nsDocument::FlushPendingNotifications [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3421] nsHTMLDocument::FlushPendingNotifications [d:\builds\seamonkey\mozilla\content\html\document\src\nsHTMLDocument.cpp, line 1496] nsDOMWindowList::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsDOMWindowList.cpp, line 103] GlobalWindowImpl::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 1699] XPTC_InvokeByIndex [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, line 106] XPCWrappedNative::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2027] XPC_WN_GetterSetter [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, line 1299] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 790] js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 881] js_GetProperty [d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 2503] js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2578] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 806] nsXPCWrappedJSClass::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp, line 1195] nsXPCWrappedJS::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp, line 430] PrepareAndDispatch [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 117] SharedStub [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 139] nsEventListenerManager::HandleEventSubType [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1218] nsEventListenerManager::HandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1737] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3457] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleChromeEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 4680] GlobalWindowImpl::HandleDOMEvent [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 687] nsDocument::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3231] nsEventStateManager::PreHandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 487] PresShell::HandleEventInternal [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6051] PresShell::HandleEvent [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 5979] nsViewManager::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2043] nsView::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 306] nsViewManager::DispatchEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1863] HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 83] nsWindow::DispatchEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 869] nsWindow::DispatchWindowEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 886] nsWindow::DispatchFocus [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4903] nsWindow::ProcessMessage [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3734] nsWindow::WindowProc [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 1131] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894) ================================================================== Incident ID 4371676 Stack Signature nsDOMWindowList::GetLength 141b88ab Trigger Time 2002-03-22 20:12:00 Email Address bht@actrix.gen.nz URL visited Build ID 2002032211 Product ID MozillaTrunk Platform Operating System Win32 Module Trigger Reason Access violation User Comments bug 131841 Stack Trace nsDOMWindowList::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsDOMWindowList.cpp, line 107] GlobalWindowImpl::GetLength [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 1705] XPTC_InvokeByIndex [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcinvoke.cpp, line 106] XPCWrappedNative::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednative.cpp, line 2027] XPC_WN_GetterSetter [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappednativejsops.cpp, line 1299] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 790] js_InternalInvoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 881] js_GetProperty [d:\builds\seamonkey\mozilla\js\src\jsobj.c, line 2503] js_Interpret [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 2578] js_Invoke [d:\builds\seamonkey\mozilla\js\src\jsinterp.c, line 806] nsXPCWrappedJSClass::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjsclass.cpp, line 1195] nsXPCWrappedJS::CallMethod [d:\builds\seamonkey\mozilla\js\src\xpconnect\src\xpcwrappedjs.cpp, line 430] PrepareAndDispatch [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 117] SharedStub [d:\builds\seamonkey\mozilla\xpcom\reflect\xptcall\src\md\win32\xptcstubs.cpp, line 139] nsEventListenerManager::HandleEventSubType [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1218] nsEventListenerManager::HandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventListenerManager.cpp, line 1737] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3457] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 3438] nsXULElement::HandleChromeEvent [d:\builds\seamonkey\mozilla\content\xul\content\src\nsXULElement.cpp, line 4686] GlobalWindowImpl::HandleDOMEvent [d:\builds\seamonkey\mozilla\dom\src\base\nsGlobalWindow.cpp, line 693] nsDocument::HandleDOMEvent [d:\builds\seamonkey\mozilla\content\base\src\nsDocument.cpp, line 3232] nsEventStateManager::PreHandleEvent [d:\builds\seamonkey\mozilla\content\events\src\nsEventStateManager.cpp, line 487] PresShell::HandleEventInternal [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6078] PresShell::HandleEvent [d:\builds\seamonkey\mozilla\layout\html\base\src\nsPresShell.cpp, line 6006] nsViewManager::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 2064] nsView::HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 306] nsViewManager::DispatchEvent [d:\builds\seamonkey\mozilla\view\src\nsViewManager.cpp, line 1876] HandleEvent [d:\builds\seamonkey\mozilla\view\src\nsView.cpp, line 83] nsWindow::DispatchEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 869] nsWindow::DispatchWindowEvent [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 886] nsWindow::DispatchFocus [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 4903] nsWindow::ProcessMessage [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 3734] nsWindow::WindowProc [d:\builds\seamonkey\mozilla\widget\src\windows\nsWindow.cpp, line 1131] KERNEL32.DLL + 0x3663 (0xbff73663) KERNEL32.DLL + 0x22894 (0xbff92894) BHT: Those are all different stacks...did you crash the first 3 times with the testcase attached? What exactly did you do to get the 4th crash?
Status: UNCONFIRMED → NEW
Ever confirmed: true
jpatel, Thanks for attaching the stack traces. The last 4 traces were added in the sequence in which I gradually reduced the complexity from the real sites to Testcase 1 <-> 4th crash. In a later build that testcase no longer reproduced but the original crash 1 still does. Therefore I have to make a new testcase unless of course you can see from the 1st crash where the problem is and how to fix it. It takes me about 1 day of work to make such a testcase because of the complexity and the different sites I have to work on. I am always trying to provide the least complex testcase possible so you don't have to wrestle with other unrelated garbage but this time this approach failed because I probably hit another bug that was fixed later. I can say that the involved scripts are rather defensive and well-behaved and there are no errors with other browsers such as IE and Netscape 4. I would like to make a new testcase but I am sick and later I will be committed at work. I could still download a new build after any patches and check.
jband, dbradley, why is XPConnect passing a bad pointer as the out param argument here?
I tried but was unable to reproduce this on Win2000 using the test in the previous bug (and a bunch of other similar attempts). I don't have a secure server handy in order to setup the testcase attached here. As mentioned above, it would be very helpful if someone could set that case up on some servers so that we can reprouce the bug against it. There's no way xpconnect would be screwing up that out param without something else very strange going on. Perhaps there is some general memory corruption going on here (I see other sorts of stacks above). Otherwise, it might be that xpconnect does not have the interface pointer to the window that it thinks it has (and is trying to call some other method in a similar slot in the wrong vtbl). Being able to reproduce this in a debugger would allow us to use DumpJSStack in order to find out exactly what JS code is running. And inspection in the debuger would allow us to tell whether or not it really is trying to call that method on that class.
I am afraid Testcase 1 does no longer reproduce either. Please don't waste your valuable time unnecessarily on this testcase. It would be an incredibly useful thing if until I am back again with a new testcase someone would be able to provide a secure server for testing. Thanks John that you mentioned this. A test certificate would be o.k. However, server generated IDs in the attachments on both sides such as in bugzilla would make testing too difficult because we need 2 URLs that refer to each other both ways.
New Testcase 2 has been crashing in 3 different modules on my Win95 comp in frequency order: - JSDOM.DLL - <unknown> - XPCOM.DLL It needs a secure server and 2 files must be configured to run it: - mainbutton.htm - secureframeset.htm The testcase is not as minimal as Testcase 1 which was too narrow in scope. Some code might not be relevant e.g. I don't think we need as many windows for crashing, but I am not guessing what code is actually crashing the browser. I think this is very exciting and I am hoping that this testcase will help to nail down and fix the problem soon. Good luck!
Testcase 2 is consistently crashing with the latest 2002040803 build. Is there anything I can do e.g. upload the testcase to a Mozilla secure area?
If you or someone could get these onto a web server that would be great. I currently don't have a system I could throw these onto at the moment.
David, I downloaded Apache and mod_ssl from www.apache.org and installed both on a redhat machine on our intranet. That is really easy and takes only 1/2 to 1 hour. The bug definitely reproduces with the built-in default certificate or - whatever that is - so I didn't have to do anything other than to copy the files into the document root directory. It's quite handy to have such a server for development and a bit of fun also. Maybe you find that useful, too.
Keywords: testcase
cc-ing jkeiser because of the involvement of frames on both sides (could not reproduce without frames). Hope this helps. Restored nsbeta1+ keyword as it was added by brendan to bug 102341 which has been closed for technical or workflow reasons. This bug is in reality a clone of bug 102341 and should be treated the same. Brendan, I hope I did this right. It would be good if someone could copy the milestone - I can't see why this should be lost. Please correct me if I am wrong.
Keywords: nsbeta1nsbeta1+
bht, only Netscape managers are allowed to add the nsbeta1+ keyword, to nominate a bug for nsbeta1, add the nsbeta1 keyword (no +).
Keywords: nsbeta1+nsbeta1
Let's see what the ADT does, and perhaps EDT will topembed+; I'm preapproving anyone who can help to work on this for mozilla1.0. /be
Keywords: mozilla1.0mozilla1.0+
Keywords: topembed
How reproducible is the test case (does anyone have the test case hosted so this can be tested)? I transition from ssl->non-ssl and back and forth all the time.
From looking at the talkback incidents with similar stacks it looks to me as if mDocShellNode is null in the call of nsDOMWindowList::GetLength: http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsDOMWindowList.cpp#106 Don't know if that will spark any inspirations. I too have not had any problems transition between HTTP and HTTPS. I haven't tried the test case, but I know the sites I was going between both had frames. I wasn't transitioning via a link, though.
The testcase reproduces 100% for me and others with different OSs e.g. Win98, WinXP. I can use Netscape 6.1, 6.2, latest Mozilla 1.0 branch, no difference. The only dependency I could imagine is that all these warning dialogs are turned on as per default so you might want to delete your profile for that. Regarding the hosting I have asked various ISPs, even Verisign but they all did not reply. I am pretty sure that this needs the transition between SSL and normal to reproduce.
Still crashing in: Mozilla/5.0 (Windows; U; Win95; en-US; rv:1.0rc2) Gecko/20020510 Talkback ID: TB6191404E
Uploaded testcase to https://polaris.101freeway.com/mozilla/secureframeset.htm The certificate is expired, but that should not matter. Reporter, does this crash appear with a simpler testcase that doesn't involve all this javascript stuff? It doesn't apppear that the 3 files other than goback.htm on the normal http server are ever supposed to get loaded.
Thanks Hampton for configuring and uploading this to your secure server! The start URL is: http://www.xsta.cc/mozilla/bug131841/index.html To answer your question, Mozilla DOES crash with any number of different testcase modifications/variations, including less script and a smaller number of windows. However the reproducibility suffers with simplification and that has caused some delay in the progress of this bug. All files get loaded before the crash when you start at index.html. Thanks again.
Thanks for setting this up! I did manage to reproduce this. As noted above, the pref about notification of entering and leaving secure sites apparently still needs to be set on. Also, I tried a few times to reproduce this with no luck until I thought to turn back on the pref that allows popups during onload etc. I believe that having these prefs on is the default, but lots of us turn them off to avoid the additional modal dialogs and popups. But, they seem to be required to reproduce the crash. The crash I see is the one with this stack: nsCOMPtr<nsIRequest>::assign_assuming_AddRef(nsIRequest * 0x00000000) line 472 + 3 bytes nsCOMPtr<nsIRequest>::assign_with_AddRef(nsISupports * 0x00000000) line 915 nsCOMPtr<nsIRequest>::operator=(nsIRequest * 0x00000000) line 585 PresShell::RemoveDummyLayoutRequest() line 6628 PresShell::DoneRemovingReflowCommands() line 6577 PresShell::ProcessReflowCommands(int 0x00000000) line 6428 PresShell::FlushPendingNotifications(PresShell * const 0x045250c8, int 0x00000000) line 5178 nsDocument::FlushPendingNotifications(nsDocument * const 0x045f6db0, int 0x00000001, int 0x00000000) line 3602 The problem is that the PresShell instance has already been released while we are still running code in it and setting its mDummyLayoutRequest member to nsnull. It looks to me like in nsDocument::FlushPendingNotifications we ought to be using a kungfuDeathGrip on the shell that we use at the bottom of the method to call shell->FlushPendingNotifications. Holding an additional ref looks to be required while this code runs. There may be other implications around the members of mPresShells[] getting released prematurely. I don't know. I did put in a quick hack to hold a reference on the PresShell at that location and tried again. It then crashed in nsDOMWindowList::GetLength (see the first stack in this bug). In this case mDocShellNode == nsnull at the point where it calls mDocShellNode->GetChildCount. Note that this is inside a 'if(mDocShellNode)' block. But, apparently doc->FlushPendingNotifications has resulted in the mDocShellNode member getting nulled out. Maybe another 'if(mDocShellNode)' block is required here. Of maybe a local nsCOMPtr to hold an additional ref. I don't know. I do see that this flushing and then using the mDocShellNode member is common pattern here. Someone with more clues about this code than I will have to decide the right way to fix it. Whatever the fix we need to make sure that the similar cases are done correctly too - whether we see crashes now or not. But, anyway, it looks like the hosted testcase makes this easy enough to reproduce - just set your prefs to to warn on entering and exiting secure sites and don't suppress popups and you should be able to make it crash too. Remember that most people will be using those pref defaults - so let's not assume that this is an unlikely crash.
Attached patch Proposed fix. (obsolete) — Splinter Review
Thanks jband for looking into this one. This fix adds kungFuDeathGrip's that keeps the presshell alive around calls to methods that might end up destroying the presshell, this also makes nsDOMWindowList safe against flushes that end up zeroing out mDocShellNode, even if I didn't see a crash due to that (but it could happen, and apparently has).
This should be a 100% safe fix, and IMO we should try to push this for mozilla1.0.
Status: NEW → ASSIGNED
OS: Windows 95 → All
Hardware: PC → All
Whiteboard: [HAVE FIX]
Target Milestone: --- → mozilla1.0
Keywords: topembedtopembed+
Keywords: adt1.0.0
Adding topcrash+ keyword per jband's comment #28, where he says, "Remember that most people will be using those pref defaults - so let's not assume that this is an unlikely crash." Since this crash is showing up under various stack signatures and has the potential to be topcrash, it wouldn't hurt to get this one fixed. Adding [@ nsCOMPtr_base::assign_with_AddRef] [@ nsDOMWindowList::GetLength] to summary for tracking (since those are the 2 stack signatures jband was able to reproduce this crash with).
Keywords: topcrash+
Summary: Crash on transition from secure to normal site → Crash on transition from secure to normal site - [@ nsCOMPtr_base::assign_with_AddRef] [@ nsDOMWindowList::GetLength]
Keywords: nsbeta1nsbeta1+
Whiteboard: [HAVE FIX] → [HAVE FIX][ADT1 RTM]
please get this reviewed and super reviewed, checked into the trunk and verified.
Comment on attachment 84111 [details] [diff] [review] Better fix, hold strong references to preshells while making calls on a presshell. sr=vidur
Attachment #84111 - Flags: superreview+
Comment on attachment 84111 [details] [diff] [review] Better fix, hold strong references to preshells while making calls on a presshell. r/sr=brendan@mozilla.org, and this is wanted for 1.0rc3 -- look for approval soon, pls. get it on the trunk sooner. /be
Attachment #84111 - Flags: review+
for (i = 0; i < count; i++) { - nsIPresShell* shell = NS_STATIC_CAST(nsIPresShell*, mPresShells[i]); + nsCOMPtr<nsIPresShell> shell = + NS_STATIC_CAST(nsIPresShell*, mPresShells[i]); + if (shell) { shell->FlushPendingNotifications(aUpdateViews); } Could |shell->FlushPendingNotifications(aUpdateViews);| end up removing the shell from mPresShells? If so you need to modify the loop more to get it working. If not, r=sicking
A comment on the side: The basic process that the testcase of this bug is based on breaks if the new preferences option "Open unrequested windows" is unchecked. Please refer to bug 145372. IMHO this new bug should be fixed soon to avoid future headaches i.e. to make the lives of Mozilla and Netscape engineers a little easier.
Sicking, yeah, those loops are bad, but there's never more than one presshell in those arrays, so I won't bother fixing the loops. At some point we should just rip out the whole notion of there possibly being more than one presshell per document, that just won't happen. Thanks for the reviews, checking in on the trunk now.
Fix checked in on the trunk.
Whiteboard: [HAVE FIX][ADT1 RTM] → [FIXED ON TRUNK][ADT1 RTM]
adding adt1.0.0+. Please get drivers approval and then check into the 1.0 branch.
Keywords: adt1.0.0adt1.0.0+
Comment on attachment 84111 [details] [diff] [review] Better fix, hold strong references to preshells while making calls on a presshell. a=chofmann,brendan please check in to 1.0 branch asap to get this in rc3.
Attachment #84111 - Flags: approval+
Fixed on branch too.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago
Keywords: fixed1.0.0
Resolution: --- → FIXED
jst: iirc there is more then one presshell for a document during printing, but i guess that can be handled some other way
Yes, that's true, but we don't need to do it that way...
Tested with Testcase 2 provided by bht@actrix.gen.nz. verified1.0.0 on 05-22-18-1.0.0 & also Verified on trunk on 05-23-08-trunk. The only difference I saw in branch & trunk is that branch does not issue security warning while leaving the secure site & going to normal site. Crash is fixed though.
Status: RESOLVED → VERIFIED
Keywords: verified1.0.0
Whiteboard: [FIXED ON TRUNK][ADT1 RTM] → [FIXED ON TRUNK][ADT1 RTM],custrtm-
Netscape 7.0 PR1 crashes on the testcase. Not a surprise probably for those who know from where PR1 was built but I don't know the details of this, sorry.
Blocks: 154670
No longer blocks: 154670
Crash Signature: [@ nsCOMPtr_base::assign_with_AddRef] [@ nsDOMWindowList::GetLength]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: