Closed Bug 170693 Opened 22 years ago Closed 21 years ago

moz crashes randomly opening a new window [@ nsWindowWatcher::GetActiveWindow ]

Categories

(Core Graveyard :: Embedding: APIs, defect)

defect
Not set
critical

Tracking

(Not tracked)

RESOLVED FIXED
mozilla1.5alpha

People

(Reporter: bugzilla, Assigned: danm.moz)

Details

(Keywords: crash, fixed1.4.1)

Crash Data

Attachments

(2 files)

User-Agent:       Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2b) Gecko/20020923
Build Identifier: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.2b) Gecko/20020923

since 21/9 i've been experiencing random crashes, but usually when the opening a
new window. latest talkback ID is:

TB11522883Q



Reproducible: Sometimes

Steps to Reproduce:
1. ..
2.
3.
adding stephend for talkback retrieval please?
(TB11522883Q)

btw, stephend, is this the "correct" way to retrieve TB-info?

isn't there another way so that i don't have to bug you and/or don't have to
file a probable duplicate bug?
Keywords: crash, stackwanted
Whiteboard: [has talkback ID]
A better way is just to File | Send Page from the browser, instead of cc:ing me
on it.

nsWindowWatcher::GetActiveWindow
[c:/builds/seamonkey/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp,
line 864]
invoke_copy_to_stack
[c:/builds/seamonkey/mozilla/xpcom/reflect/xptcall/src/md/win32/xptcinvoke.cpp]
XPCWrappedNative::CallMethod
[c:/builds/seamonkey/mozilla/js/src/xpconnect/src/xpcwrappednative.cpp, line 1996]
XPC_WN_GetterSetter
[c:/builds/seamonkey/mozilla/js/src/xpconnect/src/xpcwrappednativejsops.cpp,
line 1299]
js_Invoke [c:/builds/seamonkey/mozilla/js/src/jsinterp.c, line 830]
js_InternalInvoke [c:/builds/seamonkey/mozilla/js/src/jsinterp.c, line 926]
js_GetProperty [c:/builds/seamonkey/mozilla/js/src/jsobj.c, line 2547]
js_Interpret [c:/builds/seamonkey/mozilla/js/src/jsinterp.c, line 2640]
js_Invoke [c:/builds/seamonkey/mozilla/js/src/jsinterp.c, line 841]
js_InternalInvoke [c:/builds/seamonkey/mozilla/js/src/jsinterp.c, line 926]
JS_CallFunctionValue [c:/builds/seamonkey/mozilla/js/src/jsapi.c, line 3433]
nsJSContext::CallEventHandler
[c:/builds/seamonkey/mozilla/dom/src/base/nsJSEnvironment.cpp, line 1044]
GlobalWindowImpl::RunTimeout
[c:/builds/seamonkey/mozilla/dom/src/base/nsGlobalWindow.cpp, line 4605]
GlobalWindowImpl::InsertTimeoutIntoList
[c:/builds/seamonkey/mozilla/dom/src/base/nsGlobalWindow.cpp, line 4941]
destroyTimerEvent [c:/builds/seamonkey/mozilla/xpcom/threads/nsTimerImpl.cpp,
line 436]
nsAppShell::GetNativeEvent
[c:/builds/seamonkey/mozilla/widget/src/windows/nsAppShell.cpp, line 233]
nsAppShellService::Run
[c:/builds/seamonkey/mozilla/xpfe/appshell/src/nsAppShellService.cpp, line 472]
main1 [c:/builds/seamonkey/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1524]
main [c:/builds/seamonkey/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1872]
WinMain [c:/builds/seamonkey/mozilla/xpfe/bootstrap/nsAppRunner.cpp, line 1892]
Mozilla.exe + 0x7992 (0x00407992)
KERNEL32.dll + 0x1bbb5 (0x77f1bbb5) 
Keywords: stackwanted
Summary: moz crashes randomly opening a new window → moz crashes randomly opening a new window [@ nsWindowWatcher::GetActiveWindow ]
Whiteboard: [has talkback ID]
related: bug 167233
does it still happen with latest nightly build ?
Possibly. Talkback shows one crash in a build on the 24th.

Trunk (nsWindowWatcher::GetActiveWindow):      
 Total         237
 Unique Users  148
   1 2002092404
  20 2002092308
   7 2002092304
...and on.

Could be that both of these crashes are connectivity problems and this is a dupe
of 167233. The checkin for bug 167233 (@ nsWindowWatcher::GetActiveWindow) went
in on the 23rd and the crashes drop off sharply. We will have to look at
Talkback data in the next few days to see if that crash in the 9/24 build is an
anomaly or not. 
do you still crash using latest 1.2 build ?
http://ftp.mozilla.org/pub/mozilla/nightly/latest-1.2
-> embedding: APIs, as a guess based on the path to the file
Assignee: asa → adamlock
Component: Browser-General → Embedding: APIs
QA Contact: asa → depstein
Seeing the same thing here with 2002112304 on winXP

TB14415230K
TB14408066E

can this still be reproduced with a recent build?
http://ftp26moz.newaol.com/pub/data/crash-data/rankoutput.html shows this stack 
signature once or twice a day.
well I can't see any other open bugs with this signature (previously there's bug
81629, bug 160590 and bug 167233), so confirming this.

reassigning based on previous bug (and the fact that embedding: APIs doesn't
sound right to me...)
Assignee: adamlock → jaggernaut
Status: UNCONFIRMED → NEW
Component: Embedding: APIs → XP Toolkit/Widgets
Ever confirmed: true
QA Contact: depstein → jrgm
embedding apis is kind of right. it's only wrong because in almost all cases the
problem is a caller, but the caller is a javascript object or some dom critter,
and we can't track that down without a debugger because that information doesn't
appear in stack traces. it's not a toolkit/widgets bug.
Assignee: jaggernaut → danm
Component: XP Toolkit/Widgets → Embedding: APIs
QA Contact: jrgm → depstein
I've been seeing a spate of similar new window crashes on the recent line of
1.3b nightlies.

Currently using:
Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.3b) Gecko/20030113

Some Talkback IDs:
TB16205410E
TB16167910Q
TB16136413Y
TB16135398H
TB16033788X
Roscoe, Ron, does it happen with a fresh profile "mozilla -profilemanager" ?

This is supposed to be fixed in bug 167233 but still showing in the topcrashers'
list.
Adding 'topcrash' keyword although it only shows as #63 on the Trunk
topcrashers' list.

Adding 'stackwanted' to make sure this is indeed the same stack: TB16136413Y.
Whiteboard: TB16136413Y
This has been occuring on a profile that has existed since 1.2.  Not that it
isn't a decent way to try and isolate causation, but aren't profiles supposed to
migrate forward cleanly at this time? 

FWIW, I haven't noticed this issue on the 20030116 and 20030115 builds, but it
could just be the sites I've visited.
QA Contact: depstein → ashishbhatt
useless stack:

ntdll.dll + 0x29181 (0x77f89181)
ntdll.dll + 0xcf28 (0x77f6cf28)
ntdll.dll + 0x7586 (0x77f67586)
USER32.dll + 0x124c (0x77e7124c) 
please reopen if you still crash with latest nightly build.

*** This bug has been marked as a duplicate of 167233 ***
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → DUPLICATE
Whiteboard: TB16136413Y
as i do not see this crash anymore, i won't reopen it. 

i think however that you are a bit 'duplicate-happy', as i never use mozilla's
IMAP, and i don't even have mailnews installed.
http://ftp.mozilla.org/pub/data/crash-data/detailed-crash-analysis-all.html
shows 298 crashes with the same signature. Very few comments mention IMAP, most
of them were about surfing, opening a new window, etc. That's the reason I
believe it's dupe of bug 167233 which is the only bug report with this stack
(eventhough it seems to be linked with IMAP), got fixed in September and there's
no more similar stack after September. comment 14 mentions it doesn't crash anymore.
I may be wrong but this seems to fixed on the trunk.
I think I may have encountered this crash using
FizzillaMach/2003-05-01-08-trunk, generating TB256784E.
Status: RESOLVED → REOPENED
OS: Windows NT → All
Hardware: PC → All
Resolution: DUPLICATE → ---
bryner,

Should another if (mActive) have been added here:

http://lxr.mozilla.org/seamonkey/source/dom/src/base/nsFocusController.cpp#152



We have seen this on OS/2 : it traps sys3175 embedcmp.dll
Symptom : trap
Phase Found : FVT function verification test
Testcase :
htttp://jce.iaik.tugraz.at/servlet/demo.sslclientinfo.SSLClientInfoServlet
Build ID : mozilla 20030430 en_US os/2
Platform : IBM PC 6579-a4u 78-VPWMV OS : MCP2

Description : mozilla traps when opening new window

    Link takes you to a page that checks SSLClientInfo.
    Select the link opens a page that automatically opens a new page.
    The trap happens just before a warning popup - "website certified by an
Unknown Authority".    

Does Mozilla fail on Windows in the same way? I could not recreate on windows 2k
Did this Mozilla function work on a previous build (Regression)? no
Reproducibility : intermittent
uninstall/install
Steps to Recreate : 
    1. Uninstall Browser - an older browser build with a profile
    2. Install Browser - create new profile
    3. Open
http://jce.iaik.tugraz.at/servlet/demo.sslclientinfo.SSLClientInfoServlet

       You are redirected here by our testcase :
           http://ei4b.test.austin.ibm.com/BrwTestSSL/BrwTestSSL.html
           Link on line "SSL Client Info Test  presents you with a new
certificate, and asks for your personal certificate."

    4. After warning and certificate popups you should be taken to a webpage -
SSLClientInfo
Actual Results : trap sys3175 after selecting link - checking website certification
Expected Results : warning popup, then taken to page
Workaround - restart browser - works afterwards without failure.
I see many reports of this crash in Talkback. I believe it's happening to
/somebody/. Just not me or anyone here. So here's the latest thinking on this
problem.

The "only way" this short and relatively benign method could crash is if
mActiveWindow referred to some deleted window. By the time the crash happens
the damage has already been done, so the crash stack trace is useless. (A quick
fix would be, as bryner once suggested in related bug 167233, to use a weakref
rather than a simple non-owning ref. But that just masks the real underlying
problem, that somehow someone isn't keeping the active window reference
up-to-date.)

Without a testcase that works for us, we're reduced to eyeballing. Much
eyeballing. WindowWatcher could have its active window pointer left dangling
after the active window was destroyed if somehow by mistake the DOM Window WW
uses to represent the active top-level window didn't correspond to the
destroyed window's top-level DocShell. nsFocusController calculates that
top-level DOM window from its given focus DOM window by traversing a chain of
parent pointers. And it does this at a somewhat indeterminate time; after the
OS activates and focuses a new window. bryner and I wonder if occasionally a
stroke of timing causes us to try to set WW's active top-level window before
the chain of container DocShells has been completely hooked up.

This patch admits as active windows only DOM windows that are already known to
represent some top-level window's top-level DocShell. It's a good check to make
anyway. If we've stumbled into the correct explanation for this bug, this
should fix the crash. The side effect will be that sometimes the active window
pointer is incorrect; it will refer to some valid but inactive window (or
null). This is not a major concern, but it could screw up parenting of
otherwise orphaned modal dialogs and alerts. If this crash subsequently goes
away, the next step will be to notice the returned error in nsFocusController
and schedule a repeat attempt to set the active window after the DocShell chain
has been established.

If this doesn't fix the crash, I'm nearly ready to give up and take the weak
pointer solution.
Attachment #126965 - Flags: superreview?(blizzard)
Attachment #126965 - Flags: review?(bryner)
Comment on attachment 126965 [details] [diff] [review]
active window must be a top-level docshell

Sure, sounds fine.  We should be able to tell relatively soon from talkback
data if this is the culprit.

Only one nit, instead of NS_ASSERTION(0, ...) you can just use NS_ERROR() for
the same effect.
Attachment #126965 - Flags: review?(bryner) → review+
Attachment #126965 - Flags: superreview?(blizzard) → superreview+
patch is in. fingers crossed.
Talkback reports no incidents involving nsWindowWatcher::GetActiveWindow since
this patch was checked in a week ago. Would those who can see this crash be
certain to take this patch out for a tour? It's not in Mozilla 1.4; you'll need
to spin your own or run with a nightly build from July 4th or later.
I'd like this in 1.4.1.
Flags: blocking1.4.x+
Comment on attachment 126965 [details] [diff] [review]
active window must be a top-level docshell

If anyone involved in this bug thinks it shouldn't go in 1.4.1, speak now or
forever hold your peace.
Attachment #126965 - Flags: approval1.4.x+
Patch was checked in to the 1.4 branch three days ago.

Still no mention of this crash in Talkback from a build later than June. There's
hope for optimism. Gonna call this fixed in another week like this last one.
(And then worry about rescheduling the setting of the active window, which is
apparently sometimes incorrect; see comment 23.)
Keywords: fixed1.4.1
It's been a month and more, and I'm told that as of today talkback reports no
crashes with this signature from a build dated after the patch was checked in.
Nifty. Guess we stumbled into the right solution, then. I'm calling it fixed,
and consequently opening bug 217277 for the implied focus issue.
Status: REOPENED → RESOLVED
Closed: 22 years ago21 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla1.5alpha
Crash Signature: [@ nsWindowWatcher::GetActiveWindow ]
Product: Core → Core Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: