Closed Bug 480686 Opened 15 years ago Closed 13 years ago

"ABORT: comparing iterators over different lists" with -moz-column, rtl, background image

Categories

(Core :: Layout, defect, P2)

defect

Tracking

()

RESOLVED FIXED
mozilla7

People

(Reporter: jruderman, Assigned: bzbarsky)

References

Details

(Keywords: assertion, testcase)

Attachments

(3 files, 1 obsolete file)

###!!! ABORT: comparing iterators over different lists: 'mListLink == aOther.mListLink', file /Users/jruderman/central/layout/base/../generic/nsLineBox.h, line 684
Attached file stack trace
Still happens on mozilla-central.
Still aborts debug builds.  Seems harmless on opt.
I've seen this on whatwg for linux/mac at http://www.whatwg.org/specs/web-apps/current-work/

It is not reliable on this particular url, but spidering the anchors will almost always reproduce it.

http://www.whatwg.org/specs/web-apps/current-work/#attr-time-datetime
http://www.whatwg.org/specs/web-apps/current-work/#meta
http://www.whatwg.org/specs/web-apps/current-work/#the-canvas

The page appears to contain each of the elements of Jesse's test case.

The data from crash-stats for this url in April shows the related signatures: (counts are for the last week)

nsBulletFrame::GetListItemText 207 crashes (all Windows)

nsTextFrame::EnsureTextRun 107 crashes (most Windows, some Mac, Linux)

CompositeDataSourceImpl::cycleCollection::UnmarkPurple 3094 crashes (all Windows)
So what happens here is that nsCSSRendering::PaintBackgroundWithSC calls PrepareBackgroundLayer which calls InlineBackgroundData::GetContinuousRect, which calls IsOnSameLine for two frames that are in different columns, which fails the assertion.

Ideally we'd just check whether the two frames are in the same block, but that could be somewhat expensive....  I suppose we could check that just when the frames have different parents or something.
Attached patch Fix (obsolete) — Splinter Review
Attachment #541901 - Flags: review?(roc)
Attachment #541902 - Flags: review?(roc)
Attachment #541901 - Attachment is obsolete: true
Attachment #541901 - Flags: review?(roc)
Assignee: nobody → bzbarsky
Priority: -- → P2
Whiteboard: [need review]
Comment on attachment 541902 [details] [diff] [review]
With a comment typo fixed

Review of attachment 541902 [details] [diff] [review]:
-----------------------------------------------------------------
Attachment #541902 - Flags: review?(roc) → review+
http://hg.mozilla.org/integration/mozilla-inbound/rev/bba3ada5314c
Whiteboard: [need review]
Target Milestone: --- → mozilla7
Flags: in-testsuite+
Interesting effect on m-i. The crashtest.list was

asserts(6) load 479360-1.xhtml # Bug 439258
load 481806-1.html
asserts(6) load 483604-1.xhtml # Bug 439258

and when you inserted another one in between, 483604-1.xhtml stopped getting its expected 6 assertion failures, and 481806-1.html got 6 unexpected ones. Apparently that annotation on 479360-1.xhtml needs to be "asserts(6), forces-asserts-on-not-the-next-but-the-one-after-that(6)".
Attachment #541902 - Flags: checkin-
OS: Mac OS X → All
Hardware: x86 → All
Target Milestone: mozilla7 → ---
s/perma-orange on the new test/perma-orange because a previous test, the harness, and|or editor is broken/
> Apparently that annotation on 479360-1.xhtml needs to be

I made that into a comment and rejiggered the annotations.  Then pushed this again as http://hg.mozilla.org/integration/mozilla-inbound/rev/062b3f071f81
Attachment #541902 - Flags: checkin-
Target Milestone: --- → mozilla7
Merged:
http://hg.mozilla.org/mozilla-central/rev/062b3f071f81
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: