Closed Bug 12132 Opened 25 years ago Closed 25 years ago

Crashes when doing a "New Msg".

Categories

(MailNews Core :: Composition, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 12142

People

(Reporter: skasinathan, Assigned: troy)

Details

Overview Description: Whenever I click "New Msg" button it crashes. Build Date & Platform Bug Found: Windows Debug Build 8/19/99 on Win NT 4.0. I pulled the tree around 10.00 AM. Steps to Reproduce: 1. Start Messenger using Task | Messenger 2. Click "New Msg". Crash! Crash! Here is the stack trace! NTDLL! 77f7629c() nsDebug::PreCondition(const char * 0x01be0e68, const char * 0x01be0e5c, const char * 0x01be0e30, int 267) line 152 + 13 bytes nsFrame::AppendFrames(nsFrame * const 0x04adbe20, nsIPresContext & {...}, nsIPresShell & {...}, nsIAtom * 0x00000000, nsIFrame * 0x04bd2910) line 267 + 35 bytes FrameManager::AppendFrames(FrameManager * const 0x0420e090, nsIPresContext & {...}, nsIPresShell & {...}, nsIFrame * 0x04adbe20, nsIAtom * 0x00000000, nsIFrame * 0x04bd2910) line 354 nsCSSFrameConstructor::AppendFrames(nsIPresContext * 0x04254910, nsIPresShell * 0x0420e460, nsIFrameManager * 0x0420e090, nsIContent * 0x04abc5b0, nsIFrame * 0x04adbe20, nsIFrame * 0x04bd2910) line 4260 + 30 bytes nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x0420e550, nsIPresContext * 0x04254910, nsIContent * 0x04abc5b0, int 0) line 4358 StyleSetImpl::ContentAppended(StyleSetImpl * const 0x0420e5f0, nsIPresContext * 0x04254910, nsIContent * 0x04abc5b0, int 0) line 790 PresShell::ContentAppended(PresShell * const 0x0420e468, nsIDocument * 0x04309520, nsIContent * 0x04abc5b0, int 0) line 1562 + 46 bytes XULDocumentImpl::ContentAppended(XULDocumentImpl * const 0x04309520, nsIContent * 0x04abc5b0, int 0) line 1962 nsGenericHTMLContainerElement::AppendChildTo(nsIContent * 0x04bd104c, int 1) line 2778 nsGenericHTMLContainerElement::InsertBefore(nsIDOMNode * 0x04bd1040, nsIDOMNode * 0x00000000, nsIDOMNode * * 0x0012d638) line 2462 + 14 bytes nsGenericHTMLContainerElement::AppendChild(nsIDOMNode * 0x04bd1040, nsIDOMNode * * 0x0012d638) line 2618 nsHTMLSelectElement::Add(nsHTMLSelectElement * const 0x04abc5a0, nsIDOMHTMLElement * 0x04bd1040, nsIDOMHTMLElement * 0x00000000) line 310 + 19 bytes HTMLSelectElementAdd(JSContext * 0x04251880, JSObject * 0x044c7960, unsigned int 2, long * 0x044bbd50, long * 0x0012d784) line 542 + 33 bytes js_Invoke(JSContext * 0x04251880, unsigned int 2, unsigned int 0) line 654 + 26 bytes js_Interpret(JSContext * 0x04251880, long * 0x0012dfb0) line 2228 + 15 bytes js_Invoke(JSContext * 0x04251880, unsigned int 1, unsigned int 0) line 670 + 13 bytes js_Interpret(JSContext * 0x04251880, long * 0x0012e798) line 2228 + 15 bytes js_Invoke(JSContext * 0x04251880, unsigned int 0, unsigned int 0) line 670 + 13 bytes js_Interpret(JSContext * 0x04251880, long * 0x0012ef80) line 2228 + 15 bytes js_Invoke(JSContext * 0x04251880, unsigned int 1, unsigned int 2) line 670 + 13 bytes js_InternalCall(JSContext * 0x04251880, JSObject * 0x044c6248, long 72114768, unsigned int 1, long * 0x0012f0c0, long * 0x0012f0c8) line 747 + 15 bytes JS_CallFunctionValue(JSContext * 0x04251880, JSObject * 0x044c6248, long 72114768, unsigned int 1, long * 0x0012f0c0, long * 0x0012f0c8) line 2643 + 29 bytes nsJSEventListener::HandleEvent(nsIDOMEvent * 0x04bcae20) line 97 + 34 bytes nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent * 0x0012f2b4, nsIDOMEvent * * 0x0012f260, unsigned int 3, nsEventStatus & nsEventStatus_eIgnore) line 917 + 21 bytes RDFElementImpl::HandleDOMEvent(RDFElementImpl * const 0x04a909a0, nsIPresContext & {...}, nsEvent * 0x0012f2b4, nsIDOMEvent * * 0x0012f260, unsigned int 1, nsEventStatus & nsEventStatus_eIgnore) line 2392 RDFElementImpl::ExecuteJSCode(nsIDOMElement * 0x04a90990) line 2777 RDFElementImpl::ExecuteOnChangeHandler(nsIDOMElement * 0x04a86d40, const nsString & {...}) line 2700 + 14 bytes RDFElementImpl::SetAttribute(RDFElementImpl * const 0x04a8f5e0, int 0, nsIAtom * 0x02bf53f0, const nsString & {...}, int 1) line 1998 RDFXULBuilderImpl::AddAttribute(nsIContent * 0x04a8f5e0, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b41ef0) line 2791 + 31 bytes RDFXULBuilderImpl::OnChange(RDFXULBuilderImpl * const 0x04a85bd4, nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode * 0x02b41ef0) line 1254 + 31 bytes CompositeDataSourceImpl::OnChange(CompositeDataSourceImpl * const 0x04a85824, nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode * 0x02b41ef0) line 1417 InMemoryDataSource::Change(InMemoryDataSource * const 0x04309dd0, nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode * 0x02b41ef0) line 1241 CompositeDataSourceImpl::Change(CompositeDataSourceImpl * const 0x04a85820, nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode * 0x02b41ef0) line 946 + 28 bytes RDFXULBuilderImpl::OnSetAttribute(RDFXULBuilderImpl * const 0x04a85bdc, nsIDOMElement * 0x04a8f5d0, const nsString & {...}, const nsString & {...}) line 1703 + 71 bytes XULDocumentImpl::OnSetAttribute(XULDocumentImpl * const 0x04309548, nsIDOMElement * 0x04a8f5d0, const nsString & {...}, const nsString & {...}) line 3812 RDFElementImpl::SetAttribute(RDFElementImpl * const 0x04a8f5d0, const nsString & {...}, const nsString & {...}) line 984 setAttribute(nsIWebShell * 0x0424aa60, const char * 0x027cdf08, const char * 0x027cdf00, const nsString & {...}) line 259 + 57 bytes nsArgCallbacks::ConstructBeforeJavaScript(nsArgCallbacks * const 0x0424ef90, nsIWebShell * 0x0424aa60) line 291 + 41 bytes nsWebShellWindow::ExecuteStartupCode() line 2158 nsWebShellWindow::OnEndDocumentLoad(nsWebShellWindow * const 0x0424e10c, nsIDocumentLoader * 0x0424a8c0, nsIChannel * 0x04a73c50, unsigned int 0, nsIDocumentLoaderObserver * 0x0424aa74) line 1906 nsWebShell::OnEndDocumentLoad(nsWebShell * const 0x0424aa74, nsIDocumentLoader * 0x04b3cb40, nsIChannel * 0x04a73c50, unsigned int 0, nsIDocumentLoaderObserver * 0x0424aa74) line 3307 nsDocLoaderImpl::FireOnEndDocumentLoad(nsIDocumentLoader * 0x04b3cb40, unsigned int 0) line 1124 nsDocLoaderImpl::ChildDocLoaderFiredEndDocumentLoad(nsDocLoaderImpl * 0x04b3cb40, nsIDocumentLoader * 0x04b3cb40, unsigned int 0) line 1147 nsDocLoaderImpl::FireOnEndDocumentLoad(nsIDocumentLoader * 0x04b3cb40, unsigned int 0) line 1132 nsDocLoaderImpl::OnStopRequest(nsDocLoaderImpl * const 0x04b3cb44, nsIChannel * 0x04b3dee0, nsISupports * 0x00000000, unsigned int 0, const unsigned short * 0x00000000) line 1031 nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x04b6b440) line 274 nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x04b6b444) line 149 + 12 bytes PL_HandleEvent(PLEvent * 0x04b6b444) line 509 + 10 bytes PL_ProcessPendingEvents(PLEventQueue * 0x00f3b4e0) line 470 + 9 bytes _md_EventReceiverProc(HWND__ * 0x10d3031a, unsigned int 49407, unsigned int 0, long 15971552) line 932 + 9 bytes USER32! 77e71820() 00f3b4e0()
cc'ing troy.
this looks like something broke in the select element. During the creation of the message composition window, we fill up the identities <select> element with the available identities from JavaScript... How do we add To:, CC:, etc? do we add that dynamically as well?
adding myself to CC I'm still building, so it may be half and hour before I can help
Status: NEW → ASSIGNED
I am building too... The to, cc, bcc, etc... dropdown menu was created dynamically. As Paul rewrite it, I don't know if it's still dynamic.
Yes I am going to rewrite this, but it will still dynamically create the options inside the html:select. I will be creating many other pieces dynamically as well. This same dynamic creation is happening in the new card dialog of the address book, has anyone looked to see if that is still working?
troy checked in a bunch of table/frame layout code yesterday. I'm guessing it's related...I see nsIFrameManager stuff in the top of this stack.
Yes, it's related. It looks like we're now using gfx rendered select frames and not the native widgets as we have been. I don't know when that started Evidently mail/news is the only code that dynamically appends elements and the select frame code doesn't handle AppendFrames() which is why we're hitting the assert in nsFrame's version. The assert is there to indicate there's a problem and sure enough there is
No, nsNativeSelectFrame is for native widgets not a gfx form element. I don't know why it's getting child frames appended. I think that's always been happening and either my recently added assert detected the problem, or the mail/news code recently started dynamically building the select list I have a small change nsNativeSelectFrame we can use as well. This doesn't appear to be a major problem. It looks more like we detected a previously hidden problem
*** Bug 12142 has been marked as a duplicate of this bug. ***
On Mac, It doesn't crash but adressing dropdown menu which the content is created dynamically (all but the first one) appear very tiny. I get also the assert "Precondition: no a container (PR_FALSE) at file nsFrame.cpp, line 267
How is this different that 12142? If they're the same, then mark this a DUP of 12142. We're not crashing on Windows, either. We're hitting an assert. That's just the way asserts behave
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
you're right, it's a dupe *** This bug has been marked as a duplicate of 12142 ***
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Assignee: ducarroz → troy
Status: REOPENED → NEW
oops, we have a dupe loop reopening this bug and reassigning to troy. Troy, I'll let you reassign this to rod or kevin, whichever is appropriate
Status: NEW → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → DUPLICATE
*** This bug has been marked as a duplicate of 12142 ***
Status: RESOLVED → VERIFIED
marking verified as a duplicate.
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.