Closed Bug 115708 Opened 23 years ago Closed 22 years ago

Crash opening new windows

Categories

(SeaMonkey :: General, defect)

PowerPC
macOS
defect
Not set
blocker

Tracking

(Not tracked)

RESOLVED WORKSFORME
mozilla0.9.9

People

(Reporter: mikepinkerton, Assigned: adamlock)

Details

(Keywords: crash, regression, Whiteboard: ADT need info)

Twice with the 12/17/01 osx mozilla opt bits i crashed using cmd-N to open a new
window. It doesn't always happen, but it happens enough to make the build unusable:

Thread 0 Crashed:
 #0   0x02dbc8bc in DocumentViewerImpl::SetDOMDocument(nsIDOMDocument *)
 #1   0x02dbc86c in DocumentViewerImpl::SetDOMDocument(nsIDOMDocument *)
 #2   0x02b90c50 in nsDocShell::CreateAboutBlankContentViewer(void)
 #3   0x02b90634 in nsDocShell::EnsureContentViewer(void)
 #4   0x02b77918 in 0x2b77918
 #5   0x02ba4e24 in nsWebShell::GetInterface(nsID const &, void **)
 #6   0x005f1b14 in nsGetInterface::_cl( const(nsID const &, void **))
 #7   0x0062d4ec in nsCOMPtr_base::assign_from_helper(nsCOMPtr_helper const &,
nsID const &)
 #8   0x030fa6e8 in GlobalWindowImpl::GetDocument(nsIDOMDocument **)
 #9   0x0529c458 in 0x529c458
 #10  0x02afb920 in FireOnStateChange__15nsDocLoaderImplFP14nsIWebProgressP10nsIRe
 #11  0x02afb994 in FireOnStateChange__15nsDocLoaderImplFP14nsIWebProgressP10nsIRe
 #12  0x02afa770 in nsDocLoaderImpl::doStopDocumentLoad(nsIRequest *, unsigned int)
 #13  0x02afa50c in nsDocLoaderImpl::DocLoaderIsEmpty(void)
 #14  0x02afa214 in nsDocLoaderImpl::OnStopRequest(nsIRequest *, nsISupports *,
unsigned int)
 #15  0x0272c384 in nsLoadGroup::RemoveRequest(nsIRequest *, nsISupports *,
unsigned int)
 #16  0x02ad6bb0 in AsyncOpen__21nsCachedChromeChannelFP17nsIStreamListenerP11nsIS
 #17  0x02af4960 in nsDocumentOpenInfo::Open(nsIChannel *, int, nsISupports *)
 #18  0x02af6ee0 in nsURILoader::OpenURIVia(nsIChannel *, int, nsISupports *,
unsigned int)
 #19  0x02af6ccc in nsURILoader::OpenURI(nsIChannel *, int, nsISupports *)
 #20  0x02b981a8 in nsDocShell::DoChannelLoad(nsIChannel *, nsIURILoader *)
 #21  0x02b969c0 in DoURILoad__10nsDocShellFP6nsIURIP6nsIURIP11nsISupportsP14nsIIn
 #22  0x02b9479c in nsDocShell::InternalLoad(nsIURI *, nsIURI *, nsISupports *,
int, wchar_t const *,  *)
 #23  0x02b79d90 in nsDocShell::LoadURI(nsIURI *, nsIDocShellLoadInfo *,
unsigned int)
 #24  0x028636d0 in nsWindowWatcher::OpenWindowJS(nsIDOMWindow *, char const *,
char const *, char const *, int, unsigned int, long *,  *)
 #25  0x031086fc in OpenInternal__16GlobalWindowImplFRC9nsAStringRC9nsAStringRC9ns
 #26  0x03103d68 in GlobalWindowImpl::OpenDialog(nsIDOMWindow **)
 #27  0x005ce6cc in XPTC_InvokeByIndex
 #28  0x005ce5c0 in XPTC_InvokeByIndex
 #29  0x026d4160 in 0x26d4160
 #30  0x026da59c in XPC_WN_CallMethod(JSContext *, JSObject *, unsigned int,
long *, long *)
 #31  0x0265763c in js_Invoke
 #32  0x0265f6f4 in 0x265f6f4
 #33  0x02657694 in js_Invoke
 #34  0x026578e0 in js_InternalInvoke
 #35  0x02638b0c in JS_CallFunctionValue
 #36  0x030f50a0 in nsJSContext::CallEventHandler(void *, void *, unsigned int,
void *, int *, int)
 #37  0x031115e0 in nsJSEventListener::HandleEvent(nsIDOMEvent *)
 #38  0x02c8a570 in HandleEventSubType__22nsEventListenerManagerFP16nsListenerStru
 #39  0x02c8c9b0 in HandleEvent__22nsEventListenerManagerFP14nsIPresContextP7nsEve
 #40  0x02eab738 in HandleDOMEvent__12nsXULElementFP14nsIPresContextP7nsEventPP11n
 #41  0x0299e7cc in DispatchCommandTo__12MenuHelpersXFP16nsIWeakReferenceP10nsICon
 #42  0x029a5acc in nsMenuItemX::DoCommand(void)
 #43  0x0299bc4c in nsMenuBarX::CommandEventHandler(OpaqueEventHandlerCallRef *)
 #44  0x73118b44 in DispatchEventToHandlers
 #45  0x73101cfc in SendEventToEventTargetInternal
 #46  0x731b6164 in SendEventToEventTarget
 #47  0x7310b924 in SendHICommandEvent
 #48  0x731a7dbc in SendMenuItemSelectedEvent
 #49  0x7319fce8 in HandleKeyboardEvent
 #50  0x73118b44 in DispatchEventToHandlers
 #51  0x73101cfc in SendEventToEventTargetInternal
 #52  0x7314fc18 in SendEventToEventTargetWithOptions
 #53  0x7326da18 in HandleKeyboardEvent
 #54  0x731abc34 in ToolboxEventDispatcherHandler
 #55  0x73118bf0 in DispatchEventToHandlers
 #56  0x73101cfc in SendEventToEventTargetInternal
 #57  0x731b6164 in SendEventToEventTarget
 #58  0x731d2fd8 in ToolboxEventDispatcher
 #59  0x731d0378 in CallEventDispatchHook
 #60  0x731794ec in GetOrPeekEvent
 #61  0x731a105c in GetNextEventMatchingMask
 #62  0x731adff0 in WNEInternal
 #63  0x731c5c60 in WaitNextEvent
 #64  0x0051cbe0 in 0x51cbe0
 #65  0x00516424 in 0x516424
 #66  0x0051805c in 0x51805c
 #67  0x00517fa0 in 0x517fa0
man, this is a blocker for me. i can't use the bits.
Severity: critical → blocker
pink, do you have any idea what changed?  Is there someone with a mac osx build
that can reproduce/fix this problem?
I launched what I pulled an built this morning twice and it was fine - then my
machine just went south while launching CW. Will try some more.
I'm not seeing this with the optimized sweetlou bits either.
ok, well, i tried again and i can't get it to crash. i know as soon as i submit
this it will though. it happened to me twice, so it is still critical, just
perhaps not a blocker.

removing smoketest keyword.
Keywords: smoketest
ok, conrad duped it. it has to do with your page being about:blank.

renominating as smoketest blocker
Keywords: smoketest
That was on about the 8th new window with about:blank. Now, I can't repeat it
after many tries.
my debug mach-o build crashes at startup with a different, but eerily similar
stack (on start instead of on stop):

Thread 0:
 #0   0x70004df0 in szone_malloc
 #1   0x70004c58 in malloc_zone_malloc
 #2   0x70004b94 in malloc
 #3   0x013f5e60 in __builtin_new
 #4   0x013e7764 in nsXPIDLCString::PrepareForUseAsOutParam(void)
 #5   0x013e7d9c in nsXPIDLCString::Adopt(char *)
 #6   0x05e5c55c in GetURIStringFromRequest(nsIRequest *, nsXPIDLCString &)
 #7   0x05e5f748 in nsDocLoaderImpl::FireOnStateChange(nsIWebProgress *,
nsIRequest *, int, unsigned int)
 #8   0x05e5fa78 in nsDocLoaderImpl::FireOnStateChange(nsIWebProgress *,
nsIRequest *, int, unsigned int)
 #9   0x05e5e680 in nsDocLoaderImpl::doStartURLLoad(nsIRequest *)
 #10  0x05e5df28 in nsDocLoaderImpl::OnStartRequest(nsIRequest *, nsISupports *)
 #11  0x048220a4 in nsLoadGroup::AddRequest(nsIRequest *, nsISupports *)
 #12  0x0c694278 in imgRequestProxy::Init(imgRequest *, nsILoadGroup *,
imgIDecoderObserver *, nsISupports *)
 #13  0x0c68d958 in imgLoader::CreateNewProxyForRequest(imgRequest *,
nsILoadGroup *, imgIDecoderObserver *, nsISupports *, unsigned int, imgIRequest
*, imgIRequest **)
 #14  0x0c68d0c4 in imgLoader::LoadImage(nsIURI *, nsILoadGroup *,
imgIDecoderObserver *, nsISupports *, unsigned int, nsISupports *, imgIRequest
*, imgIRequest **)
 #15  0x0f8c2ed0 in nsImageBoxFrame::UpdateImage(nsIPresContext *, int &)
 #16  0x0f8c26fc in nsImageBoxFrame::Init(nsIPresContext *, nsIContent *,
nsIFrame *, nsIStyleContext *, nsIFrame *)
 #17  0x0f83e8f8 in nsCSSFrameConstructor::InitAndRestoreFrame(nsIPresContext *,
nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIStyleContext *, nsIFrame
*, nsIFrame *)
 #18  0x0f83c030 in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #19  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #20  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #21  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #22  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #23  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #24  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #25  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #26  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #27  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #28  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #29  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #30  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #31  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #32  0x0f83f1b0 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #33  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #34  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #35  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #36  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #37  0x0f83f1b0 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #38  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #39  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #40  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #41  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #42  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #43  0x0f850018 in nsCSSFrameConstructor::ProcessChildren(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, int,
nsFrameItems &, int, nsTableCreator *)
 #44  0x0f83c15c in nsCSSFrameConstructor::ConstructXULFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *, nsIAtom
*, int, nsIStyleContext *, nsFrameItems &, int, int &)
 #45  0x0f83f4c4 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #46  0x0f83f1b0 in nsCSSFrameConstructor::ConstructFrameInternal(nsIPresShell
*, nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsIAtom *, int, nsIStyleContext *, nsFrameItems &, int)
 #47  0x0f83ee08 in nsCSSFrameConstructor::ConstructFrame(nsIPresShell *,
nsIPresContext *, nsFrameConstructorState &, nsIContent *, nsIFrame *,
nsFrameItems &)
 #48  0x0f84559c in nsCSSFrameConstructor::ContentInserted(nsIPresContext *,
nsIContent *, nsIContent *, int, nsILayoutHistoryState *)
 #49  0x0aa45428 in StyleSetImpl::ContentInserted(nsIPresContext *, nsIContent
*, nsIContent *, int)
 #50  0x0f7a17c8 in PresShell::ContentInserted(nsIDocument *, nsIContent *,
nsIContent *, int)
 #51  0x0a960a60 in nsXBLResourceLoader::NotifyBoundElements(void)
 #52  0x0a9603dc in nsXBLResourceLoader::StyleSheetLoaded(nsICSSStyleSheet *, int)
 #53  0x0a826da4 in CSSLoaderImpl::InsertSheetInDoc(nsICSSStyleSheet *, int,
nsIContent *, int, nsICSSLoaderObserver *)
 #54  0x0a825324 in InsertPendingSheet(void *, void *)
 #55  0x013321ac in nsVoidArray::EnumerateForwards(int (*)(void *, void *), void *)
 #56  0x0a8256c8 in CSSLoaderImpl::Cleanup(URLKey &, SheetLoadData *)
 #57  0x0a825cbc in CSSLoaderImpl::SheetComplete(nsICSSStyleSheet *,
SheetLoadData *)
 #58  0x0a825f10 in CSSLoaderImpl::ParseSheet(nsIUnicharInputStream *,
SheetLoadData *, int &, nsICSSStyleSheet *&)
 #59  0x0a8260bc in CSSLoaderImpl::DidLoadStyle(nsIStreamLoader *, nsString *,
SheetLoadData *, unsigned int)
 #60  0x0a825274 in SheetLoadData::OnStreamComplete(nsIStreamLoader *,
nsISupports *, unsigned int, unsigned int, char const *)
 #61  0x0484ad80 in nsStreamLoader::OnStopRequest(nsIRequest *, nsISupports *,
unsigned int)
 #62  0x048bc42c in nsJARChannel::OnStopRequest(nsIRequest *, nsISupports *,
unsigned int)
 #63  0x0482ad48 in nsOnStopRequestEvent::HandleEvent(void)
 #64  0x04829774 in nsARequestObserverEvent::HandlePLEvent(PLEvent *)
 #65  0x01393708 in PL_HandleEvent
 #66  0x01393488 in PL_ProcessPendingEvents
 #67  0x01395a60 in nsEventQueueImpl::ProcessPendingEvents(void)
 #68  0x030e95b8 in nsMacNSPREventQueueHandler::ProcessPLEventQueue(void)
 #69  0x030e9380 in nsMacNSPREventQueueHandler::RepeatAction(EventRecord const &)
 #70  0x030f374c in Repeater::DoRepeaters(EventRecord const &)
 #71  0x030cc0fc in nsMacMessagePump::DispatchEvent(int, EventRecord *)
 #72  0x030cbcb0 in nsMacMessagePump::DoMessagePump(void)
 #73  0x030b8b98 in nsAppShell::Run(void)
 #74  0x02649788 in nsAppShellService::Run(void)
 #75  0x0000672c in main1(int, char **, nsISupports *)
 #76  0x00007008 in main
 #77  0x000020a8 in _start
 #78  0x00001ed8 in start
Assignee: asa → adamlock
could this be related to the invalid xul crashes in 115864? the stacks look
similar, those this crashes much further down.

cc'ing hyatt since he owns the other bug.
I wasn't able to reproduce this on osx commercial build 2001-12-18-04-trunk. 
Used keyboard short cut and menu item to open at least a dozen new windows with 
about:blank and netscape homepage. But I did see a single crash that I couldn't 
reproduce when I first started the smoketests this morning.
I don't understand this initial stack trace. DocumentViewerImpl::SetDOMDocument
 does not call itself so why does it appear twice?
taking off smoketest list, but it's still a blocker. the bits are too unstable
for me to use with this crash in them. i seem to hit it at exactly the wrong
moments.
Keywords: smoketest
Is this only happening on macho builds?  Or are people seeing it on CFM builds too?

I saw odd crashes last night on my Linux build at home going between URLs or
opening up new windows, but pulling Hyatt's last fix alleviated the pain.
I've started a fresh build to see if I can duplicate. Can I just ask the Mac
people how I go about debug it & getting stack traces etc?
to answer rjc, pink reported crashes in both CFM and mach-o builds
My Mac build is still going and won't be finished anytime soon so I'm calling it
a night (1:30am here). Please pick this bug up if anyone has any further insight
to the problem.
yup, both cfm and mach-o
I have been unsucessful trying to reproduce this problem. I did a full pull
yesterday ~3pm and produce an optimized carbon build from that.

Hitting cmd+N seems to work as expected on my OS X 10.1. Windows open whether I
set Mozilla to open about:blank or http://www.mozilla.org. I have even tried
rapidly pressing cmd+n 20 times and the new windows appear eventually. I have
Moz running with about 100 open windows at the moment. It hasn't crashed once.

Mike, is this something happening with a build of your own or a nightly?
Stack trace sez the crash is happening during lazy document creation. This
implies that DocumentViewerImpl::SetDOMDocument could be jamming in a new
document on top of a partially formed old one. Noting the worrisome but
wonderfully handy comment "XXX Right now, this method assumes that the layout of
the current document hasn't started yet...," I'm adding Johnny to the cc:-fest
(and bothering Peter VanderBeken personally), hoping for insight.
This doesn't necessarily help, but I don't think the XXX comment in
nsDocumentViewer should apply here. From looking at the stacktrace (the first
one, the second one doesn't seem to have anything to do with the creation of the
synthetic about:blank document) we're called from
nsDocShell::EnsureContentViewer() through
nsDocShell::CreateAboutBlankContentViewer(), which means that there is no
current document, and the document viewer here and the document that's being set
on the document viewer are both newly created. Layout doesn't know about the new
synthetic document at this point.

I agree with Adam here, the stacktrace (again, the first one) doesn't make
sense, DocumentViewerImpl::SetDOMDocument() doesn't call itself, what's up with
that? And what's frame #4, why no symbols?

Other than that I don't know how to proceed here, I'd need to see this in a
debugger...
Is this still a blocker or should it be downgraded?
i still think it's a blocker, though i'm not actively running the tip builds
because they are so generally unstable and full of regressions.

i'll accept downgrading to critical. 
Target Milestone: --- → mozilla0.9.9
Mozilla regularly crashes on me when i open a new window running on Windows2000
(bug 121492). Should there be a non-platform specific bug for this problem?
ADT needs info: Is this still happening in tip builds (since bug 112492 was fixed)
Whiteboard: ADT need info
I have never been able to reproduce this problem on Mach or conventional carbon
builds.
Is anyone still seeing this problem? I've never been able to reproduce it.
I say WORKFORME until someone can provide more info...
WORKSFORME
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → WORKSFORME
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.