Bug 150970

Summary: [GTK]ASSERTION FAILED: resolvedMainSize >= 0 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax
Product: WebKit Reporter: Renata Hodovan <rhodovan.u-szeged>
Component: Layout and RenderingAssignee: Nobody <webkit-unassigned>
Status: REOPENED ---    
Severity: Normal CC: ahmad.saleem792, bfulgham, darin, mcatanzaro, svillar
Priority: P2    
Version: WebKit Local Build   
Hardware: Unspecified   
OS: Unspecified   
Bug Depends on:    
Bug Blocks: 116980    
Attachments:
Description Flags
Test none

Description Renata Hodovan 2015-11-06 02:50:54 PST
Created attachment 264929 [details]
Test

Load the attached test with debug MiniBrowser:

<style>
desc, #id_2, .class_0, *, .class_0 {
    -webkit-background-composite: source-out;
    -webkit-margin-bottom-collapse: collapse !important;
    overflow-x: scroll;
    box-sizing: content-box;
    @keyframes animation_7 {};
    word-wrap: break-word;
    color-rendering: optimizeSpeed;
    display: flex;
    will-change:contents;
}
</style>
&minus;06j3P&#982;c4ms 
<progress>


OS: Ubuntu 15.04 x86_64
Checked build: debug EFL
Checked version: babd346


Backtrace:

ASSERTION FAILED: resolvedMainSize >= 0
../../Source/WebCore/rendering/RenderFlexibleBox.cpp(879) : WebCore::LayoutUnit WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax(WebCore::RenderBox&, WebCore::LayoutUnit)
1   0x7fa03072ebb5 WTFCrash
2   0x7fa037074209 WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax(WebCore::RenderBox&, WebCore::LayoutUnit)
3   0x7fa0370746e6 WebCore::RenderFlexibleBox::computeNextFlexLine(WTF::Vector<WebCore::RenderBox*, 0ul, WTF::CrashOnOverflow, 16ul>&, WebCore::LayoutUnit&, double&, double&, WebCore::LayoutUnit&, bool&)
4   0x7fa0370731eb WebCore::RenderFlexibleBox::layoutFlexItems(bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&)
5   0x7fa0370712bb WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit)
6   0x7fa036fae46e WebCore::RenderBlock::layout()
7   0x7fa036f81939 WebCore::RenderElement::layoutIfNeeded()
8   0x7fa037075948 WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&, WTF::Vector<WebCore::RenderBox*, 0ul, WTF::CrashOnOverflow, 16ul> const&, WTF::Vector<WebCore::LayoutUnit, 0ul, WTF::CrashOnOverflow, 16ul> const&, WebCore::LayoutUnit, bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&)
9   0x7fa03707319a WebCore::RenderFlexibleBox::layoutFlexItems(bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&)
10  0x7fa0370712bb WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit)
11  0x7fa036fae46e WebCore::RenderBlock::layout()
12  0x7fa036f81939 WebCore::RenderElement::layoutIfNeeded()
13  0x7fa037075948 WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&, WTF::Vector<WebCore::RenderBox*, 0ul, WTF::CrashOnOverflow, 16ul> const&, WTF::Vector<WebCore::LayoutUnit, 0ul, WTF::CrashOnOverflow, 16ul> const&, WebCore::LayoutUnit, bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&)
14  0x7fa03707319a WebCore::RenderFlexibleBox::layoutFlexItems(bool, WTF::Vector<WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul>&)
15  0x7fa0370712bb WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit)
16  0x7fa036fae46e WebCore::RenderBlock::layout()
17  0x7fa036fdcd7e WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&, WebCore::RenderBlockFlow::MarginInfo&, WebCore::LayoutUnit&, WebCore::LayoutUnit&)
18  0x7fa036fdc8bd WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&)
19  0x7fa036fdbd21 WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
20  0x7fa036fae46e WebCore::RenderBlock::layout()
21  0x7fa0371bf63f WebCore::RenderView::layoutContent(WebCore::LayoutState const&)
22  0x7fa0371bfd32 WebCore::RenderView::layout()
23  0x7fa036d9375d WebCore::FrameView::layout(bool)
24  0x7fa0367f530a WebCore::Document::implicitClose()
25  0x7fa036c5703b WebCore::FrameLoader::checkCallImplicitClose()
26  0x7fa036c56d72 WebCore::FrameLoader::checkCompleted()
27  0x7fa036c56ae2 WebCore::FrameLoader::finishedParsing()
28  0x7fa0367ff33a WebCore::Document::finishedParsing()
29  0x7fa037b55033 WebCore::HTMLConstructionSite::finishedParsing()
30  0x7fa036b4e8b2 WebCore::HTMLTreeBuilder::finished()
31  0x7fa036b1ee66 WebCore::HTMLDocumentParser::end()
Aborted (core dumped)

Program terminated with signal SIGSEGV, Segmentation fault.
#0  0x00007fa03072ebba in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
321     *(int *)(uintptr_t)0xbbadbeef = 0;
#0  0x00007fa03072ebba in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:321
#1  0x00007fa037074209 in WebCore::RenderFlexibleBox::adjustChildSizeForMinAndMax (this=0x7fa013bbf7d0, child=..., childSize=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:879
#2  0x00007fa0370746e6 in WebCore::RenderFlexibleBox::computeNextFlexLine (this=0x7fa013bbf7d0, orderedChildren=..., preferredMainAxisExtent=..., totalFlexGrow=@0x7ffe1557f300: 0, totalWeightedFlexShrink=@0x7ffe1557f308: -1.875, minMaxAppliedMainAxisExtent=..., hasInfiniteLineLength=@0x7ffe1557f2af: false) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:922
#3  0x00007fa0370731eb in WebCore::RenderFlexibleBox::layoutFlexItems (this=0x7fa013bbf7d0, relayoutChildren=true, lineContexts=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:695
#4  0x00007fa0370712bb in WebCore::RenderFlexibleBox::layoutBlock (this=0x7fa013bbf7d0, relayoutChildren=true) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:272
#5  0x00007fa036fae46e in WebCore::RenderBlock::layout (this=0x7fa013bbf7d0) at ../../Source/WebCore/rendering/RenderBlock.cpp:931
#6  0x00007fa036f81939 in WebCore::RenderElement::layoutIfNeeded (this=0x7fa013bbf7d0) at ../../Source/WebCore/rendering/RenderElement.h:135
#7  0x00007fa037075948 in WebCore::RenderFlexibleBox::layoutAndPlaceChildren (this=0x7fa013bbf708, crossAxisOffset=..., children=..., childSizes=..., availableFreeSpace=..., relayoutChildren=true, lineContexts=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:1128
#8  0x00007fa03707319a in WebCore::RenderFlexibleBox::layoutFlexItems (this=0x7fa013bbf708, relayoutChildren=true, lineContexts=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:705
#9  0x00007fa0370712bb in WebCore::RenderFlexibleBox::layoutBlock (this=0x7fa013bbf708, relayoutChildren=true) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:272
#10 0x00007fa036fae46e in WebCore::RenderBlock::layout (this=0x7fa013bbf708) at ../../Source/WebCore/rendering/RenderBlock.cpp:931
#11 0x00007fa036f81939 in WebCore::RenderElement::layoutIfNeeded (this=0x7fa013bbf708) at ../../Source/WebCore/rendering/RenderElement.h:135
#12 0x00007fa037075948 in WebCore::RenderFlexibleBox::layoutAndPlaceChildren (this=0x7fa013bbf258, crossAxisOffset=..., children=..., childSizes=..., availableFreeSpace=..., relayoutChildren=true, lineContexts=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:1128
#13 0x00007fa03707319a in WebCore::RenderFlexibleBox::layoutFlexItems (this=0x7fa013bbf258, relayoutChildren=true, lineContexts=...) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:705
#14 0x00007fa0370712bb in WebCore::RenderFlexibleBox::layoutBlock (this=0x7fa013bbf258, relayoutChildren=true) at ../../Source/WebCore/rendering/RenderFlexibleBox.cpp:272
#15 0x00007fa036fae46e in WebCore::RenderBlock::layout (this=0x7fa013bbf258) at ../../Source/WebCore/rendering/RenderBlock.cpp:931
#16 0x00007fa036fdcd7e in WebCore::RenderBlockFlow::layoutBlockChild (this=0x7fa013ade228, child=..., marginInfo=..., previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:709
#17 0x00007fa036fdc8bd in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x7fa013ade228, relayoutChildren=true, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:632
#18 0x00007fa036fdbd21 in WebCore::RenderBlockFlow::layoutBlock (this=0x7fa013ade228, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485
#19 0x00007fa036fae46e in WebCore::RenderBlock::layout (this=0x7fa013ade228) at ../../Source/WebCore/rendering/RenderBlock.cpp:931
#20 0x00007fa0371bf63f in WebCore::RenderView::layoutContent (this=0x7fa013ade228, state=...) at ../../Source/WebCore/rendering/RenderView.cpp:253
#21 0x00007fa0371bfd32 in WebCore::RenderView::layout (this=0x7fa013ade228) at ../../Source/WebCore/rendering/RenderView.cpp:378
#22 0x00007fa036d9375d in WebCore::FrameView::layout (this=0x7fa01380c000, allowSubtree=true) at ../../Source/WebCore/page/FrameView.cpp:1414
#23 0x00007fa0367f530a in WebCore::Document::implicitClose (this=0x7fa013836000) at ../../Source/WebCore/dom/Document.cpp:2704
#24 0x00007fa036c5703b in WebCore::FrameLoader::checkCallImplicitClose (this=0x7fa013ae4098) at ../../Source/WebCore/loader/FrameLoader.cpp:889
#25 0x00007fa036c56d72 in WebCore::FrameLoader::checkCompleted (this=0x7fa013ae4098) at ../../Source/WebCore/loader/FrameLoader.cpp:835
#26 0x00007fa036c56ae2 in WebCore::FrameLoader::finishedParsing (this=0x7fa013ae4098) at ../../Source/WebCore/loader/FrameLoader.cpp:756
#27 0x00007fa0367ff33a in WebCore::Document::finishedParsing (this=0x7fa013836000) at ../../Source/WebCore/dom/Document.cpp:4897
#28 0x00007fa037b55033 in WebCore::HTMLConstructionSite::finishedParsing (this=0x7fa013afe6e0) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:403
#29 0x00007fa036b4e8b2 in WebCore::HTMLTreeBuilder::finished (this=0x7fa013afe6c0) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2937
#30 0x00007fa036b1ee66 in WebCore::HTMLDocumentParser::end (this=0x7fa01382e000) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:402
#31 0x00007fa036b1ef3f in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x7fa01382e000) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:411
#32 0x00007fa036b1db51 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x7fa01382e000) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:132
#33 0x00007fa036b1ef82 in WebCore::HTMLDocumentParser::attemptToEnd (this=0x7fa01382e000) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:423
#34 0x00007fa036b1f039 in WebCore::HTMLDocumentParser::finish (this=0x7fa01382e000) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:451
#35 0x00007fa036c42160 in WebCore::DocumentWriter::end (this=0x7fa013825a60) at ../../Source/WebCore/loader/DocumentWriter.cpp:247
#36 0x00007fa036c2ba36 in WebCore::DocumentLoader::finishedLoading (this=0x7fa0138259c0, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:437
#37 0x00007fa036c2b794 in WebCore::DocumentLoader::notifyFinished (this=0x7fa0138259c0, resource=0x7fa013837980) at ../../Source/WebCore/loader/DocumentLoader.cpp:384
#38 0x00007fa036cd6989 in WebCore::CachedResource::checkNotify (this=0x7fa013837980) at ../../Source/WebCore/loader/cache/CachedResource.cpp:297
#39 0x00007fa036cd6a98 in WebCore::CachedResource::finishLoading (this=0x7fa013837980) at ../../Source/WebCore/loader/cache/CachedResource.cpp:313
#40 0x00007fa036cd2c8c in WebCore::CachedRawResource::finishLoading (this=0x7fa013837980, data=0x7fa013bbc700) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:103
#41 0x00007fa036c9b688 in WebCore::SubresourceLoader::didFinishLoading (this=0x7fa01383f000, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:372
#42 0x00007fa036c96167 in WebCore::ResourceLoader::didFinishLoading (this=0x7fa01383f000, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:638
#43 0x00007fa037481556 in WebCore::readCallback (asyncResult=0x10a09e0, data=0x7fa013bbd680) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1341
#44 0x00007fa02cd1b5b6 in async_ready_callback_wrapper (source_object=0xff95b0, res=0x10a09e0, user_data=0x7fa013bbd680) at ginputstream.c:523
#45 0x00007fa02cd41b84 in g_task_return_now (task=0x10a09e0) at gtask.c:1077
#46 0x00007fa02cd41ba9 in complete_in_idle_cb (task=0x10a09e0) at gtask.c:1086
#47 0x00007fa02c779add in g_main_dispatch (context=0xff38d0) at gmain.c:3064
#48 g_main_context_dispatch (context=context@entry=0xff38d0) at gmain.c:3663
#49 0x00007fa02e0e5e58 in _ecore_glib_select__locked (ecore_timeout=<optimized out>, efds=0x7ffe15580df0, wfds=0x7ffe15580d70, rfds=0x7ffe15580cf0, ecore_fds=<optimized out>, ctx=<optimized out>) at lib/ecore/ecore_glib.c:172
#50 _ecore_glib_select (ecore_fds=<optimized out>, rfds=0x7ffe15580cf0, wfds=0x7ffe15580d70, efds=0x7ffe15580df0, ecore_timeout=<optimized out>) at lib/ecore/ecore_glib.c:204
#51 0x00007fa02e0e94a4 in _ecore_main_select (timeout=9.532824124368238e-130) at lib/ecore/ecore_main.c:1459
#52 0x00007fa02e0e9ed4 in _ecore_main_loop_iterate_internal (once_only=once_only@entry=0) at lib/ecore/ecore_main.c:1893
#53 0x00007fa02e0e9fc7 in ecore_main_loop_begin () at lib/ecore/ecore_main.c:983
#54 0x00007fa030789aab in WTF::RunLoop::run () at ../../Source/WTF/wtf/efl/RunLoopEfl.cpp:49
#55 0x00007fa036579bcb in WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=2, argv=0x7ffe15581228) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61
#56 0x00007fa0365797d9 in WebKit::WebProcessMainUnix (argc=2, argv=0x7ffe15581228) at ../../Source/WebKit2/WebProcess/efl/WebProcessMainEfl.cpp:161
#57 0x00000000004008ea in main (argc=2, argv=0x7ffe15581228) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:44
Comment 1 Brent Fulgham 2016-08-04 17:28:52 PDT
This problem does not reproduce under r204037. If you believe there is still a problem, please reopen this bug and provide a revised test case.
Comment 2 Renata Hodovan 2016-08-05 10:01:11 PDT
Using the attached test case the issue still seems valid in r204165 with debug EFL and GTK builds.
Comment 3 Darin Adler 2016-08-05 23:02:53 PDT
Seems peculiar that this would be platform dependent. When someone finds a fix I would like to understand why the platform difference exists.
Comment 4 Ahmad Saleem 2023-06-02 17:02:40 PDT
Similar assertion was fixed in this commit by Blink: https://chromium.googlesource.com/chromium/src.git/+/a66aa95b886d50d216f74b82d85b050b1b24b756