WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
73250
REGRESSION(
r101268
): Intermittent assertion failure in fast/block/child-not-removed-from-parent-lineboxes-crash.html
https://bugs.webkit.org/show_bug.cgi?id=73250
Summary
REGRESSION(r101268): Intermittent assertion failure in fast/block/child-not-r...
Zhenyao Mo
Reported
2011-11-28 14:27:34 PST
This starts happening after
r101268
.
Attachments
QtWebKit gdb backtrace
(16.96 KB, text/plain)
2011-11-29 07:54 PST
,
Csaba Osztrogonác
no flags
Details
fixes the bug
(2.33 KB, patch)
2011-12-01 17:55 PST
,
Ryosuke Niwa
darin
: review+
Details
Formatted Diff
Diff
View All
Add attachment
proposed patch, testcase, etc.
Zhenyao Mo
Comment 1
2011-11-28 14:31:09 PST
Added to test_expectations.txt in
r101282
Ryosuke Niwa
Comment 2
2011-11-28 15:40:27 PST
Seems like this is a dup of 69275 or 69267.
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=fast%2Fblock%2Fchild-not-removed-from-parent-lineboxes-crash.html
ASSERTION FAILED: m_nestedIsolateCount >= 1 third_party/WebKit/Source/WebCore/platform/text/BidiResolver.h(203) : void WebCore::BidiResolver<Iterator, Run>::exitIsolate() [with Iterator = WebCore::InlineIterator, Run = WebCore::BidiRun] 1 0x159b84e 2 0x15b849b 3 0x15b81cb 4 0x15b80b6 5 0x15b9a46 6 0x15b9c79 7 0x15b3f2c 8 0x15b4cce 9 0x15b071f 10 0x15b03e9 11 0x15b2172 12 0x15735e2 13 0x1572dee 14 0x157686e 15 0x1576490 16 0x1573600 17 0x1572dee 18 0x157686e 19 0x1576490 20 0x1573600 21 0x1572dee 22 0x157686e 23 0x1576490 24 0x1573600 25 0x1572dee 26 0x16ab2be 27 0x12f52de 28 0xc85df7 29 0xc85ecb 30 0xcc9ec3 31 0x1741a41 [6729:6729:8033864725538:ERROR:process_util_posix.cc(134)] Received signal 11 base::debug::StackTrace::StackTrace() [0x711356] base::(anonymous namespace)::StackDumpSignalHandler() [0x6ce0b9] 0x7f40f34eaaf0 WebCore::BidiResolver<>::exitIsolate() [0x159b853] WebCore::notifyObserverWillExitObject<>() [0x15b849b] WebCore::bidiNextShared<>() [0x15b81cb] WebCore::bidiNextSkippingEmptyInlines<>() [0x15b80b6] WebCore::InlineIterator::increment() [0x15b9a46] WebCore::BidiResolver<>::increment() [0x15b9c79] WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace() [0x15b3f2c] WebCore::RenderBlock::LineBreaker::nextLineBreak() [0x15b4cce] WebCore::RenderBlock::layoutRunsAndFloatsInRange() [0x15b071f] WebCore::RenderBlock::layoutRunsAndFloats() [0x15b03e9] WebCore::RenderBlock::layoutInlineChildren() [0x15b2172] WebCore::RenderBlock::layoutBlock() [0x15735e2] WebCore::RenderBlock::layout() [0x1572dee] WebCore::RenderBlock::layoutBlockChild() [0x157686e] WebCore::RenderBlock::layoutBlockChildren() [0x1576490] WebCore::RenderBlock::layoutBlock() [0x1573600] WebCore::RenderBlock::layout() [0x1572dee] WebCore::RenderBlock::layoutBlockChild() [0x157686e] WebCore::RenderBlock::layoutBlockChildren() [0x1576490] WebCore::RenderBlock::layoutBlock() [0x1573600] WebCore::RenderBlock::layout() [0x1572dee] WebCore::RenderBlock::layoutBlockChild() [0x157686e] WebCore::RenderBlock::layoutBlockChildren() [0x1576490] WebCore::RenderBlock::layoutBlock() [0x1573600] WebCore::RenderBlock::layout() [0x1572dee] WebCore::RenderView::layout() [0x16ab2be] WebCore::FrameView::layout() [0x12f52de] WebCore::Document::updateLayout() [0xc85df7] WebCore::Document::updateLayoutIgnorePendingStylesheets() [0xc85ecb] WebCore::Element::offsetTop() [0xcc9ec3] WebCore::ElementInternal::offsetTopAttrGetter() [0x1741a41] 0x6deacd2f240
Csaba Osztrogonác
Comment 3
2011-11-29 07:29:47 PST
Same assertion on Qt platform: ASSERTION FAILED: m_nestedIsolateCount >= 1 ../../../../Source/WebCore/platform/text/BidiResolver.h(203) : void WebCore::BidiResolver<Iterator, Run>::exitIsolate() [with Iterator = WebCore::InlineIterator, Run = WebCore::BidiRun]
Csaba Osztrogonác
Comment 4
2011-11-29 07:54:46 PST
Created
attachment 116968
[details]
QtWebKit gdb backtrace
Csaba Osztrogonác
Comment 5
2011-11-29 08:46:35 PST
It is P1/critical bug, because it is a crash.
Csaba Osztrogonác
Comment 6
2011-11-29 09:11:45 PST
I added this test to the Qt Skipped list:
http://trac.webkit.org/changeset/101389
Please unskip it with the proper fix. Thanks in advance.
Ryosuke Niwa
Comment 7
2011-11-29 14:03:00 PST
*** This bug has been marked as a duplicate of
bug 69267
***
Ryosuke Niwa
Comment 8
2011-12-01 12:31:33 PST
It appears that the assertion failure is still happening at least on Chromium bots:
http://test-results.appspot.com/dashboards/flakiness_dashboard.html#showExpectations=true&tests=fast%2Fblock%2Fchild-not-removed-from-parent-lineboxes-crash.html
Ryosuke Niwa
Comment 9
2011-12-01 14:19:38 PST
This is actually different assertion: ASSERTION FAILED: !m_nestedIsolateCount /Volumes/Data/webkit3/Source/WebCore/platform/text/BidiResolver.h(278) : WebCore::BidiResolver<Iterator, Run>::~BidiResolver() [with Iterator = WebCore::InlineIterator, Run = WebCore::BidiRun] 1 0x102ac166d WebCore::BidiResolver<WebCore::InlineIterator, WebCore::BidiRun>::~BidiResolver() 2 0x102ab9027 WebCore::RenderBlock::layoutRunsAndFloats(WebCore::LineLayoutState&, bool) 3 0x102ab952b WebCore::RenderBlock::layoutInlineChildren(bool, int&, int&) 4 0x102a8e116 WebCore::RenderBlock::layoutBlock(bool, int, WebCore::RenderBlock::BlockLayoutPass) 5 0x102a82087 WebCore::RenderBlock::layout() 6 0x102a8bbba WebCore::RenderBlock::layoutBlockChild(WebCore::RenderBox*, WebCore::RenderBlock::MarginInfo&, int&, int&) 7 0x102a8cb6a WebCore::RenderBlock::layoutBlockChildren(bool, int&) 8 0x102a8e12f WebCore::RenderBlock::layoutBlock(bool, int, WebCore::RenderBlock::BlockLayoutPass) 9 0x102a82087 WebCore::RenderBlock::layout() The problem is that layoutRunsAndFloatsInRange could bail out early without exiting all inlines at: if (checkForEndLineMatch) { layoutState.setEndLineMatched(matchedEndLine(layoutState, resolver, cleanLineStart, cleanLineBidiStatus)); if (layoutState.endLineMatched()) { break; and end = lineBreaker.nextLineBreak(resolver, layoutState.lineInfo(), lineBreakIteratorInfo, lastFloatFromPreviousLine, consecutiveHyphenatedLines); if (resolver.position().atEnd()) { // FIXME: We shouldn't be creating any runs in findNextLineBreak to begin with! // Once BidiRunList is separated from BidiResolver this will not be needed. resolver.runs().deleteRuns(); resolver.markCurrentRunEmpty(); // FIXME: This can probably be replaced by an ASSERT (or just removed). layoutState.setCheckForFloatsFromLastLine(true); break; When this happens, the count hasn't been reset to 0 and we hit the assertion. I could either reset the counter before breaking in those two places or remove the assertion. Eric & Mitz, do you have a preference?
Eric Seidel (no email)
Comment 10
2011-12-01 14:40:00 PST
It seems this assertion has been useful and we should keep it if possible.
Ryosuke Niwa
Comment 11
2011-12-01 14:44:31 PST
(In reply to
comment #10
)
> It seems this assertion has been useful and we should keep it if possible.
The assertion that has been useful is "m_nestedIsolateCount >= 1" in exitIsolate. The one we're hitting now is "!m_nestedIsolateCount" in ~BidiResolver.
Ryosuke Niwa
Comment 12
2011-12-01 17:55:54 PST
Created
attachment 117536
[details]
fixes the bug
Ryosuke Niwa
Comment 13
2011-12-01 17:57:00 PST
Here's a patch to keep the assertion and reset the position.
Darin Adler
Comment 14
2011-12-01 18:01:54 PST
Comment on
attachment 117536
[details]
fixes the bug View in context:
https://bugs.webkit.org/attachment.cgi?id=117536&action=review
> Source/WebCore/rendering/RenderBlockLineLayout.cpp:1212 > + resolver.setPosition(InlineIterator(resolver.position().root(), 0, 0), 0);
Tragically verbose!
Ryosuke Niwa
Comment 15
2011-12-01 18:03:51 PST
Comment on
attachment 117536
[details]
fixes the bug View in context:
https://bugs.webkit.org/attachment.cgi?id=117536&action=review
>> Source/WebCore/rendering/RenderBlockLineLayout.cpp:1212 >> + resolver.setPosition(InlineIterator(resolver.position().root(), 0, 0), 0); > > Tragically verbose!
I know :( I'm hoping to get back to refactoring BidiResolver / InlineIterator in Q1 though.
Ryosuke Niwa
Comment 16
2011-12-01 18:39:18 PST
Committed
r101733
: <
http://trac.webkit.org/changeset/101733
>
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug