Closed Bug 209575 Opened 21 years ago Closed 21 years ago

trunk topcrash [@ CSSStyleRuleImpl::MapRuleInfoInto]

Categories

(Core :: CSS Parsing and Computation, defect)

x86
Windows 2000
defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: jcarpenter0524, Assigned: dbaron)

References

Details

(Keywords: crash, topcrash, Whiteboard: [patch])

Crash Data

Attachments

(2 files, 3 obsolete files)

4   CSSStyleRuleImpl::MapRuleInfoInto   11 

 
 	Source File :
c:/builds/seamonkey/mozilla/content/html/style/src/nsCSSStyleRule.cpp line : 1341
 
====================================================================================================
     Count   Offset    Real Signature
[ 4   CSSStyleRuleImpl::MapRuleInfoInto 7799b30f -
CSSStyleRuleImpl::MapRuleInfoInto ]
 
     Crash date range: 2003-06-08 to 2003-06-12 
     Count   Platform List 
     2   Windows NT 5.1 build 2600
     2   Windows NT 5.0 build 2195
 
     Count   Build Id List 
     2   2003060804
     1   2003061104
     1   2003060808
 
     No of Unique Users         2
 
 Stack trace(Frame) 

	 CSSStyleRuleImpl::MapRuleInfoInto
[c:/builds/seamonkey/mozilla/content/html/style/src/nsCSSStyleRule.cpp  line 1341] 
	 nsRuleNode::WalkRuleTree
[c:/builds/seamonkey/mozilla/content/base/src/nsRuleNode.cpp  line 1430] 
	 nsRuleNode::GetDisplayData
[c:/builds/seamonkey/mozilla/content/base/src/nsRuleNode.cpp  line 1158] 
	 nsRuleNode::GetStyleData
[c:/builds/seamonkey/mozilla/content/base/src/nsRuleNode.cpp  line 4501] 
	 nsStyleContext::GetStyleData
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleContext.cpp  line 262] 
	 nsStyleContext::ApplyStyleFixups
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleContext.cpp  line 383] 
	 nsStyleContext::nsStyleContext
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleContext.cpp  line 89] 
	 NS_NewStyleContext
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleContext.cpp  line 867] 
	 StyleSetImpl::GetContext
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleSet.cpp  line 1042] 
	 StyleSetImpl::ResolveStyleFor
[c:/builds/seamonkey/mozilla/content/base/src/nsStyleSet.cpp  line 1236] 
	 nsPresContext::ResolveStyleContextFor
[c:/builds/seamonkey/mozilla/layout/base/src/nsPresContext.cpp  line 924] 
	 nsCSSFrameConstructor::ResolveStyleContext
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6753] 
	 nsCSSFrameConstructor::ConstructFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7196] 
	 nsCSSFrameConstructor::ProcessInlineChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 13565] 
	 nsCSSFrameConstructor::ConstructInline
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 13333] 
	 nsCSSFrameConstructor::ConstructFrameByDisplayType
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6493] 
	 nsCSSFrameConstructor::ConstructFrameInternal
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7357] 
	 nsCSSFrameConstructor::ConstructFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7210] 
	 nsCSSFrameConstructor::ProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 12075] 
	 nsCSSFrameConstructor::ConstructTableCellFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2980] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3239] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2821] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3225] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowGroupFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2709] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3219] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2585] 
	 nsCSSFrameConstructor::ConstructFrameByDisplayType
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6544] 
	 nsCSSFrameConstructor::ConstructFrameInternal
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7357] 
	 nsCSSFrameConstructor::ConstructFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7210] 
	 nsCSSFrameConstructor::ProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 12075] 
	 nsCSSFrameConstructor::ConstructTableCellFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2980] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3239] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2821] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3225] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowGroupFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2709] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3219] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2585] 
	 nsCSSFrameConstructor::ConstructFrameByDisplayType
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6544] 
	 nsCSSFrameConstructor::ConstructFrameInternal
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7357] 
	 nsCSSFrameConstructor::ConstructFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7210] 
	 nsCSSFrameConstructor::ProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 12075] 
	 nsCSSFrameConstructor::ConstructTableCellFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2980] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3239] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2821] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3225] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableRowGroupFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2709] 
	 nsCSSFrameConstructor::TableProcessChild
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3219] 
	 nsCSSFrameConstructor::TableProcessChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 3136] 
	 nsCSSFrameConstructor::ConstructTableFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 2585] 
	 nsCSSFrameConstructor::ConstructFrameByDisplayType
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6544] 
	 nsCSSFrameConstructor::ConstructFrameInternal
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7357] 
	 nsCSSFrameConstructor::ConstructFrame
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7210] 
	 nsCSSFrameConstructor::ProcessBlockChildren
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 13250] 
	 nsCSSFrameConstructor::ConstructBlock
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 13194] 
	 nsCSSFrameConstructor::ConstructFrameByDisplayType
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 6473] 
	 nsCSSFrameConstructor::ConstructFrameInternal
[c:/builds/seamonkey/mozilla/layout/html/style/src/nsCSSFrameConstructor.cpp 
line 7357]  
 
     (20976872)	URL: http://www.realtor.com
     (20879588)	URL: http://www.realtor.com
     (20879588)	Comments: search on realtor.com
I'm not seeing a crash.  Anyone know the steps to reproduce?
The talkback reports show the crash is on the third-to-last instruction of the
function:

61570141 8b4814           mov     ecx,[eax+0x14]      <=== crash here
61570144 e8de010000       call    61570327
61570149 c20800           ret     0x8

This doesn't make any sense to me.  If |this| were garbage, we'd have crashed
already (virtual function call).  Furthermore, the inner call is a non-virtual
function call.

The registers aren't available.
I got this crash today while opening 5 different blogs in new Tabs from gemal
blog page ( http://gemal.dk/mozilla/blogupdates.html ) but I can't reproduce
this with the same steps :-(

(1 day old win2k trunk)
A screenshot from MSVC++ : http://matti.no-ip.org/debug.gif
(domain is blocked from the NSCP Firewall but you can use my IRC IP to access
it)

crashed again while opening 5-10 Tabs very fast (middle click + loading in the
background) : Chris Nelson's Weblog, adot's notblog*, doron's blaahg, Zach's
Blog, Blogzilla - a blog about Mozilla, Surf*Mind*Musings, <Glazblog/>, Hixie's
Natural Log, DougT's Ramblings, kovu's blog )

I hope this helps...
What was |mDeclaration| ?  And was the memory corrupt?
This were an optimized with symbols and MSVC++ couldn't show |mDeclaration| :-( 

Dunno if the memory is corrupt because I'm no developer (=I'm dumb)
[06-26 18:10:25] <Matti> dbaron: i got the crash again and i have the debugger open
[06-26 18:10:49] <Matti> you want to know "mDeclaration" right ?
[06-26 18:13:37] <Matti> mDeclaration is "0x00000000" this time and aRuleData is
0x0012dde0
Comment on attachment 126556 [details]
win2k stack from an optimized with symbols

Oh, this part of the stack shows the problem pretty clearly:

>nsHTMLDocument::ContentAppended(nsHTMLDocument * const 0x037f9178, nsIContent * 0x03932ad0, int 16) line 1381 + 10 bytes
[...]
>HTMLContentSink::BeginUpdate(HTMLContentSink * const 0x026eca30, nsIDocument * 0x037f9178) line 5383
>nsDocument::BeginUpdate(nsDocument * const 0x037f9178) line 1835 + 7 bytes
>nsGenericHTMLElement::SetHTMLAttribute(nsGenericHTMLElement * const 0x00000000, nsIAtom * 0x0024e950, const nsHTMLValue & {...}, int 1) line 2013
>nsDOMCSSAttributeDeclaration::DeclarationChanged(nsDOMCSSAttributeDeclaration * const 0x014729c0 const  CSSStyleRuleImpl::`vftable'{for `nsICSSStyleRule'}) line 96 + 32 bytes
>nsDOMCSSDeclaration::ParsePropertyValue(nsDOMCSSDeclaration * const 0x014729c0 const  CSSStyleRuleImpl::`vftable'{for `nsICSSStyleRule'}, const nsAString & {...}, const nsAString & {...}) line 288 + 7 bytes

I'm not yet sure what to do about it, though.
Attached patch patch (obsolete) — Splinter Review
This should work as a temporary fix, at least.
Attachment #126598 - Flags: superreview?(bzbarsky)
Attachment #126598 - Flags: review?(bzbarsky)
Comment on attachment 126598 [details] [diff] [review]
patch

There's something wrong here.
Attachment #126598 - Attachment is obsolete: true
Attachment #126598 - Flags: superreview?(bzbarsky)
Attachment #126598 - Flags: review?(bzbarsky)
Attached patch patch (obsolete) — Splinter Review
Only change the way we handle the declaration, not the selector.
Attachment #126605 - Flags: superreview?(bzbarsky)
Attachment #126605 - Flags: review?(bzbarsky)
Comment on attachment 126605 [details] [diff] [review]
patch

I'm not sure what I think of removing those |if (mDeclaration)| checks, given
that Clone() can return null on OOM...

Other than that looks reasonable; I'm assuming we have scripts setting inline
style on nodes that have not been flushed from the sink yet....
Attached patch patch (obsolete) — Splinter Review
Also make CSSStyleRuleImpl::Clone return null/NS_ERROR_OUT_OF_MEMORY whenever
declaration / selector allocation fails.
Attachment #126605 - Attachment is obsolete: true
Attachment #126716 - Flags: superreview?(bzbarsky)
Attachment #126716 - Flags: review?(bzbarsky)
Attachment #126605 - Flags: superreview?(bzbarsky)
Attachment #126605 - Flags: review?(bzbarsky)
Comment on attachment 126716 [details] [diff] [review]
patch

Um... this still removes those checks for mDeclaration being non-null...
Attachment #126716 - Flags: superreview?(bzbarsky)
Attachment #126716 - Flags: superreview-
Attachment #126716 - Flags: review?(bzbarsky)
Attachment #126716 - Flags: review-
Comment on attachment 126716 [details] [diff] [review]
patch

Could you describe a codepath that would make it null?	(See comment 13.)
Attachment #126716 - Flags: superreview?(bzbarsky)
Attachment #126716 - Flags: superreview-
Attachment #126716 - Flags: review?(bzbarsky)
Attachment #126716 - Flags: review-
Attached patch patchSplinter Review
Attachment #126716 - Attachment is obsolete: true
Attachment #126716 - Flags: superreview?(bzbarsky)
Attachment #126716 - Flags: review?(bzbarsky)
Comment on attachment 126753 [details] [diff] [review]
patch

r+sr=bzbarsky
Attachment #126753 - Flags: superreview+
Attachment #126753 - Flags: review+
Fix checked in to trunk, 2003-06-30 14:31 -0700.
Status: NEW → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
*** Bug 211125 has been marked as a duplicate of this bug. ***
Talkback isn't showing any reports after 2003063008.  (I'm assuming talkback has
been working in those builds, which I'm not sure of, since there have been some
talkback problems recently.)
David: Talkback reports have not successfully completed since July 1st.  I think
I  have fixed the problem and tommorrow's reports should have the latest
Talkback data for the past 10 days.
Crash Signature: [@ CSSStyleRuleImpl::MapRuleInfoInto]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: