Closed Bug 255153 Opened 20 years ago Closed 20 years ago

Account Wizard crashes after clicking Next -Trunk [@ nsTextControlFrame::SetValue]

Categories

(Core :: Layout: Form Controls, defect)

defect
Not set
critical

Tracking

()

VERIFIED FIXED
mozilla1.8alpha3

People

(Reporter: mcsmurf, Assigned: bzbarsky)

Details

(Keywords: crash, regression, topcrash)

Crash Data

Attachments

(1 file)

This happens with a current cvs trunk build
To reproduce:
1. Start MailNews
2. Open Mail&News Account Settings
3. Click on Add Account
4. Fill in some random (valid data)

After entering the Incoming Server (POP, Use Global Inbox deactivated, but i
don't think this is related) and pressing the Next button, it crashes.

Stacktrace:
nsTextControlFrame::SetValue(nsTextControlFrame * const 0x06353c20, const
nsAString & {...}) line 2961 + 9 bytes
nsTextControlFrame::SetProperty(nsTextControlFrame * const 0x06382aa8,
nsPresContext * 0x06137310, nsIAtom * 0x00e84b10, const nsAString & {...}) line 2156
nsHTMLInputElement::SetValueInternal(nsHTMLInputElement * const 0x06353c20,
const nsAString & {...}, nsITextControlFrame * 0x00000001) line 708
nsHTMLInputElement::SetValue(nsHTMLInputElement * const 0x0681d714, const
nsAString & {...}) line 660
XPTC_InvokeByIndex(nsISupports * 0x0681d714, unsigned int 0x00000058, unsigned
int 0x00000001, nsXPTCVariant * 0x0012b9cc) line 102
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode
0xaf02a468) line 2028 + 22 bytes
XPC_WN_GetterSetter(JSContext * 0x0620b9e8, JSObject * 0x02ce2f50, unsigned int
0x00000001, long * 0x02ce3244, long * 0x0012bc28) line 1311 + 11 bytes
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000001, unsigned int
0x00000002) line 1281 + 17 bytes
js_InternalInvoke(JSContext * 0x041fd230, JSObject * 0x0602a468, long
0x0419eac0, unsigned int 0x00000000, unsigned int 0x00000001, long * 0x0012bebc,
long * 0x0012bebc) line 1378 + 13 bytes
js_InternalGetOrSet(JSContext * 0x0620b9e8, JSObject * 0x0602a468, long
0x00ea49e0, long 0x0419eac0, int 0x00000008, unsigned int 0x00000001, long *
0x0012bebc, long * 0x0012bebc) line 1421 + 21 bytes
js_SetProperty(JSContext * 0x0620b9e8, JSObject * 0x0602a468, long 0x00ea49e0,
long * 0x0012bebc) line 2884 + 33 bytes
js_Interpret(JSContext * 0x0620b9e8, long * 0x0012bf64) line 2531
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000001, unsigned int
0x00000002) line 1301 + 10 bytes
js_InternalInvoke(JSContext * 0x041fd20c, JSObject * 0x06d64ac0, long
0x06d64690, unsigned int 0x00000000, unsigned int 0x00000001, long * 0x0012c190,
long * 0x0012c190) line 1378 + 13 bytes
js_InternalGetOrSet(JSContext * 0x0620b9e8, JSObject * 0x06d64ac0, long
0x00ea49e0, long 0x06d64690, int 0x00000008, unsigned int 0x00000001, long *
0x0012c190, long * 0x0012c190) line 1421 + 21 bytes
js_SetProperty(JSContext * 0x0620b9e8, JSObject * 0x06d64ac0, long 0x00ea49e0,
long * 0x0012c190) line 2884 + 33 bytes
js_Interpret(JSContext * 0x0620b9e8, long * 0x0012c238) line 2531
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000001, unsigned int
0x00000006) line 1301 + 10 bytes
fun_apply(JSContext * 0x0620b9e8, JSObject * 0x06d64a50, unsigned int
0x00000001, long * 0x00000001, long * 0x0012c2b0) line 1532
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000002, unsigned int
0x00000000) line 1281 + 17 bytes
js_Interpret(JSContext * 0x0620b9e8, long * 0x0012c4e8) line 3375 + 11 bytes
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000001, unsigned int
0x00000002) line 1301 + 10 bytes
js_InternalInvoke(JSContext * 0x041fd064, JSObject * 0x06861188, long
0x06861240, unsigned int 0x00000000, unsigned int 0x00000001, long * 0x0012c714,
long * 0x0012c714) line 1378 + 13 bytes
js_InternalGetOrSet(JSContext * 0x0620b9e8, JSObject * 0x06861188, long
0x06859c48, long 0x06861240, int 0x00000008, unsigned int 0x00000001, long *
0x0012c714, long * 0x0012c714) line 1421 + 21 bytes
js_SetProperty(JSContext * 0x0620b9e8, JSObject * 0x06861188, long 0x06859c48,
long * 0x0012c714) line 2884 + 33 bytes
js_Interpret(JSContext * 0x0620b9e8, long * 0x0012c7bc) line 2531
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000000, unsigned int
0x00000000) line 1301 + 10 bytes
js_Interpret(JSContext * 0x0620b9e8, long * 0x0012c98c) line 3375 + 11 bytes
js_Invoke(JSContext * 0x00000001, unsigned int 0x00000001, unsigned int
0x00000002) line 1301 + 10 bytes
nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJSClass * const 0x01d3e188,
nsXPCWrappedJS * 0x01fb7a98, unsigned short 0x0003, const nsXPTMethodInfo *
0x01c376e8, nsXPTCMiniVariant * 0x0012cb30) line 1336 + 16 bytes
nsXPCWrappedJS::CallMethod(nsXPCWrappedJS * const 0x03fb7a98, unsigned short
0x0003, const nsXPTMethodInfo * 0x01c376e8, nsXPTCMiniVariant * 0x0012cb30) line 450
PrepareAndDispatch(nsXPTCStubBase * 0x00000000, unsigned int 0x00000003,
unsigned int * 0x0012cbe8, unsigned int * 0x0012cbd8) line 117 + 18 bytes
SharedStub() line 147
nsEventListenerManager::HandleEventSubType(nsEventListenerManager * const
0x06353c20, nsListenerStruct * 0x03fb7c88, nsIDOMEvent * 0x060f5578,
nsIDOMEventTarget * 0x06d189f0, unsigned int 0x060f5584, unsigned int
0x00000007) line 1512 + 11 bytes
nsEventListenerManager::HandleEvent(nsEventListenerManager * const 0x03fb7c50,
nsPresContext * 0x00000000, nsEvent * 0x00000000, nsIDOMEvent * * 0x0012cfa4,
nsIDOMEventTarget * 0x06d189f0, unsigned int 0x00000007, nsEventStatus *
0x0012d0f8) line 1590
nsXULElement::HandleDOMEvent(nsXULElement * const 0x06353c20, nsPresContext *
0x06137310, nsEvent * 0x0012d0ac, nsIDOMEvent * * 0x0012cfa4, unsigned int
0x00000007, nsEventStatus * 0x0012d0f8) line 2823
PresShell::HandleDOMEventWithTarget(PresShell * const 0x06e90100, nsIContent *
0x06e90100, nsEvent * 0x0012d0ac, nsEventStatus * 0x0012d0f8) line 6090
nsButtonBoxFrame::MouseClicked(nsButtonBoxFrame * const 0x06353c20,
nsPresContext * 0x06137310, nsGUIEvent * 0x0012d1e8) line 178
nsButtonBoxFrame::HandleEvent(nsButtonBoxFrame * const 0x06eb2680, nsPresContext
* 0x06137310, nsGUIEvent * 0x0012d1e8, nsEventStatus * 0x0012d5a4) line 147

This makes creating new accounts impossible in MailNews :/
Ok, you need to create a mail account to reproduce, with a news account it 
doesn't crash. The problem here is mEditor is a null pointer.
This smells like bug 27382 landing/backing out fallout.  Have you tried with a
new build since then?
Status: UNCONFIRMED → NEW
Ever confirmed: true
(In reply to comment #2)
> This smells like bug 27382 landing/backing out fallout.  Have you tried with a
> new build since then?

Yes, my build has all checkins up-to now.
Flags: blocking1.8a3?
> The problem here is mEditor is a null pointer.

The entire SetValue() function is one big |if (mEditor && mUseEditor)| block. 
So we shouldn't be getting into this code at all if mEditor is null.

Can you narrow down a 24-hour period for the regression using nightlies, at
least?  That'll give us a place to start looking...
Last known good here was Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US;
rv:1.8a3) Gecko/20040809 Mnenhy/0.6.0.104 {Build ID: 2004080918} Tinderbox-Build.

I missed some Builds, next available here is 2004081008 which crashes. 

I have got an crash too while try to Open the All-Header View with mnenhy, the
Stack look a bit similar, send some Talkback-Reports: TB537356Y

Hope thats the same Regression. 
(In reply to comment #4)
> Can you narrow down a 24-hour period for the regression using nightlies, at
> least?  That'll give us a place to start looking...

Can confirm Comment 5, doesn't occour with 2004080908, but with 2004081008
Bonsai link:
http://bonsai.mozilla.org/cvsquery.cgi?treeid=default&module=all&branch=HEAD&branchtype=match&dir=&file=&filetype=match&who=&whotype=match&sortby=Date&hours=2&date=explicit&mindate=2004%2F08%2F09+07%3A00%3A00&maxdate=2004%2F08%2F10+09%3A00%3A00&cvsroot=%2Fcvsroot
(-1 hours at 09 build, +1 hour at 10 build, just not so miss some maybe checkin,
since i dont know if the hour is the beginning of the build process or if it
marks the end of it)
Is this a problem in an August 11 build?  The August 10 builds were done
mid-checkin, apparently, and were rather bogus..
(In reply to comment #7)
> Is this a problem in an August 11 build?

Yes, it is. I have tried it with: Mozilla/5.0 (Windows; U; Windows NT 5.0;
en-US; rv:1.8a3) Gecko/20040811 Mnenhy/0.6.0.104 {Build ID: 2004081109} and can
reproduce my crash while try to expand Headers: TB538334M

and try to make an new E-Mail Account like the original reporting: TB538315K

Oops, sorry for the Spam, I have confused the two Talkback IDs im comment #8
Attached patch FixSplinter Review
Comment on attachment 155851 [details] [diff] [review]
Fix

David, could you review?

The short story here is that setting .value on the content node passed the
value on to the frame, which was still around but would get destroyed if style
got flushed.  Then the frame sets the value in the editor, which does a reflow
batch around the operation; the end of the reflow batch flushes out reflow (and
hence style reresolves), which destroys the frame.  Then we unwind back into
the frame and attempt to access members, which crashes...

The fix is to change nsGenericHTMLElement::GetPrimaryFrameFor to never return a
frame that's on the hit list...
Attachment #155851 - Flags: superreview?(dbaron)
Attachment #155851 - Flags: review?(dbaron)
Comment on attachment 155851 [details] [diff] [review]
Fix

This is confusing without knowing that Flush_Frames is a bunch of other things
|ed together (including Flush_StyleReresolves), but r+sr=dbaron.
Attachment #155851 - Flags: superreview?(dbaron)
Attachment #155851 - Flags: superreview+
Attachment #155851 - Flags: review?(dbaron)
Attachment #155851 - Flags: review+
Comment on attachment 155851 [details] [diff] [review]
Fix

Could this crash fix be approved for alpha3?
Attachment #155851 - Flags: approval1.8a3?
Comment on attachment 155851 [details] [diff] [review]
Fix

a=asa for checkin to 1.8a3
Attachment #155851 - Flags: approval1.8a3? → approval1.8a3+
Assignee: nobody → bzbarsky
OS: Windows 2000 → All
Hardware: PC → All
Target Milestone: --- → mozilla1.8alpha3
Fixed
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Flags: blocking1.8a3?
Adding topcrash keyword for tracking.  This was a MozillaTrunk regression
introduced on 8/10 and should no longer appear in Talkback data after 8/12.  We
can keep an eye on Talkback data and verify this in a few days:
http://talkback-public.mozilla.org/reports/mozilla/Trunk/Trunk-topcrashers.html
Keywords: topcrash
Summary: Account Wizard crashes after clicking Next [@ nsTextControlFrame::SetValue] → Account Wizard crashes after clicking Next -Trunk [@ nsTextControlFrame::SetValue]
Crash Signature: [@ nsTextControlFrame::SetValue]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: