Created attachment 232529 [details] Test case Assertion failure happens when loading the test case below. The crash works with any tags (not only with <input>), the only thing that the value of -webkit-column-count has to be greater than 1. <style> * { -webkit-column-count:2; } </style> <input> Backtrace: ASSERTION FAILED: !childBox.isRenderFlowThread() ../../Source/WebCore/rendering/RenderBlock.cpp(3923) : bool WebCore::canComputeRegionRangeForBox(const WebCore::RenderBlock*, const WebCore::RenderBox&, const WebCore::RenderFlowThread*) ... Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x7fff9732a700 (LWP 17076)] 0x00007ffff30ac8ec in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:333 333 *(int *)(uintptr_t)0xbbadbeef = 0; (gdb) bt #0 0x00007ffff30ac8ec in WTFCrash () at ../../Source/WTF/wtf/Assertions.cpp:333 #1 0x00007ffff3dd4f67 in WebCore::canComputeRegionRangeForBox (parentBlock=0x8e0c30, childBox=..., flowThreadContainingBlock=0x870030) at ../../Source/WebCore/rendering/RenderBlock.cpp:3923 #2 0x00007ffff3dd52b4 in WebCore::RenderBlock::estimateRegionRangeForBoxChild (this=0x8e0c30, box=...) at ../../Source/WebCore/rendering/RenderBlock.cpp:3969 #3 0x00007ffff3df19f6 in WebCore::RenderBlockFlow::layoutBlockChild (this=0x8e0c30, child=..., marginInfo=..., previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:678 #4 0x00007ffff3df17c8 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x8e0c30, relayoutChildren=true, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:632 #5 0x00007ffff3df0cc6 in WebCore::RenderBlockFlow::layoutBlock (this=0x8e0c30, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485 #6 0x00007ffff3f88b45 in WebCore::RenderTextControlSingleLine::layout (this=0x8e0c30) at ../../Source/WebCore/rendering/RenderTextControlSingleLine.cpp:140 #7 0x00007ffff3d94369 in WebCore::RenderElement::layoutIfNeeded (this=0x8e0c30) at ../../Source/WebCore/rendering/RenderElement.h:101 #8 0x00007ffff3e0d418 in WebCore::RenderBlockFlow::layoutLineBoxes (this=0x870030, relayoutChildren=false, repaintLogicalTop=..., repaintLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockLineLayout.cpp:1440 #9 0x00007ffff3df18bc in WebCore::RenderBlockFlow::layoutInlineChildren (this=0x870030, relayoutChildren=false, repaintLogicalTop=..., repaintLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:652 #10 0x00007ffff3df0ca2 in WebCore::RenderBlockFlow::layoutBlock (this=0x870030, relayoutChildren=false, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:483 #11 0x00007ffff3dc6e7b in WebCore::RenderBlock::layout (this=0x870030) at ../../Source/WebCore/rendering/RenderBlock.cpp:1018 #12 0x00007ffff3e7c6bf in WebCore::RenderFlowThread::layout (this=0x870030) at ../../Source/WebCore/rendering/RenderFlowThread.cpp:201 #13 0x00007ffff3f16226 in WebCore::RenderMultiColumnFlowThread::layout (this=0x870030) at ../../Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:135 #14 0x00007ffff3dff2e8 in WebCore::RenderBlockFlow::layoutSpecialExcludedChild (this=0xa0f250, relayoutChildren=true) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:3613 #15 0x00007ffff3df16a6 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0xa0f250, relayoutChildren=true, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:604 #16 0x00007ffff3df0cc6 in WebCore::RenderBlockFlow::layoutBlock (this=0xa0f250, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485 #17 0x00007ffff3dc6e7b in WebCore::RenderBlock::layout (this=0xa0f250) at ../../Source/WebCore/rendering/RenderBlock.cpp:1018 #18 0x00007ffff3df1c86 in WebCore::RenderBlockFlow::layoutBlockChild (this=0x9f2330, child=..., marginInfo=..., previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:713 #19 0x00007ffff3df17c8 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x9f2330, relayoutChildren=false, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:632 #20 0x00007ffff3df0cc6 in WebCore::RenderBlockFlow::layoutBlock (this=0x9f2330, relayoutChildren=false, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485 #21 0x00007ffff3dc6e7b in WebCore::RenderBlock::layout (this=0x9f2330) at ../../Source/WebCore/rendering/RenderBlock.cpp:1018 #22 0x00007ffff3e7c6bf in WebCore::RenderFlowThread::layout (this=0x9f2330) at ../../Source/WebCore/rendering/RenderFlowThread.cpp:201 #23 0x00007ffff3f16226 in WebCore::RenderMultiColumnFlowThread::layout (this=0x9f2330) at ../../Source/WebCore/rendering/RenderMultiColumnFlowThread.cpp:135 #24 0x00007ffff3dff2e8 in WebCore::RenderBlockFlow::layoutSpecialExcludedChild (this=0x844cb0, relayoutChildren=true) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:3613 #25 0x00007ffff3df16a6 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x844cb0, relayoutChildren=true, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:604 #26 0x00007ffff3df0cc6 in WebCore::RenderBlockFlow::layoutBlock (this=0x844cb0, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485 #27 0x00007ffff3dc6e7b in WebCore::RenderBlock::layout (this=0x844cb0) at ../../Source/WebCore/rendering/RenderBlock.cpp:1018 #28 0x00007ffff3df1c86 in WebCore::RenderBlockFlow::layoutBlockChild (this=0x87a370, child=..., marginInfo=..., previousFloatLogicalBottom=..., maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:713 #29 0x00007ffff3df17c8 in WebCore::RenderBlockFlow::layoutBlockChildren (this=0x87a370, relayoutChildren=true, maxFloatLogicalBottom=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:632 #30 0x00007ffff3df0cc6 in WebCore::RenderBlockFlow::layoutBlock (this=0x87a370, relayoutChildren=true, pageLogicalHeight=...) at ../../Source/WebCore/rendering/RenderBlockFlow.cpp:485 #31 0x00007ffff3dc6e7b in WebCore::RenderBlock::layout (this=0x87a370) at ../../Source/WebCore/rendering/RenderBlock.cpp:1018 ---Type <return> to continue, or q <return> to quit--- #32 0x00007ffff3f9967f in WebCore::RenderView::layoutContent (this=0x87a370, state=...) at ../../Source/WebCore/rendering/RenderView.cpp:229 #33 0x00007ffff3f99d38 in WebCore::RenderView::layout (this=0x87a370) at ../../Source/WebCore/rendering/RenderView.cpp:354 #34 0x00007ffff3b541a0 in WebCore::FrameView::layout (this=0x8783e0, allowSubtree=true) at ../../Source/WebCore/page/FrameView.cpp:1274 #35 0x00007ffff35c3165 in WebCore::Document::implicitClose (this=0x87a6c0) at ../../Source/WebCore/dom/Document.cpp:2432 #36 0x00007ffff3a24337 in WebCore::FrameLoader::checkCallImplicitClose (this=0x988898) at ../../Source/WebCore/loader/FrameLoader.cpp:895 #37 0x00007ffff3a240e2 in WebCore::FrameLoader::checkCompleted (this=0x988898) at ../../Source/WebCore/loader/FrameLoader.cpp:841 #38 0x00007ffff3a23e6a in WebCore::FrameLoader::finishedParsing (this=0x988898) at ../../Source/WebCore/loader/FrameLoader.cpp:761 #39 0x00007ffff35cab8d in WebCore::Document::finishedParsing (this=0x87a6c0) at ../../Source/WebCore/dom/Document.cpp:4489 #40 0x00007ffff38c2133 in WebCore::HTMLConstructionSite::finishedParsing (this=0x8793b8) at ../../Source/WebCore/html/parser/HTMLConstructionSite.cpp:395 #41 0x00007ffff38fac8f in WebCore::HTMLTreeBuilder::finished (this=0x8793a0) at ../../Source/WebCore/html/parser/HTMLTreeBuilder.cpp:2997 #42 0x00007ffff38c9bbe in WebCore::HTMLDocumentParser::end (this=0x8f0b80) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:439 #43 0x00007ffff38c9ca9 in WebCore::HTMLDocumentParser::attemptToRunDeferredScriptsAndEnd (this=0x8f0b80) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:450 #44 0x00007ffff38c88f3 in WebCore::HTMLDocumentParser::prepareToStopParsing (this=0x8f0b80) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:165 #45 0x00007ffff38c9cec in WebCore::HTMLDocumentParser::attemptToEnd (this=0x8f0b80) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:462 #46 0x00007ffff38c9da3 in WebCore::HTMLDocumentParser::finish (this=0x8f0b80) at ../../Source/WebCore/html/parser/HTMLDocumentParser.cpp:490 #47 0x00007ffff3a17053 in WebCore::DocumentWriter::end (this=0x99c000) at ../../Source/WebCore/loader/DocumentWriter.cpp:248 #48 0x00007ffff3a04423 in WebCore::DocumentLoader::finishedLoading (this=0x99bf60, finishTime=0) at ../../Source/WebCore/loader/DocumentLoader.cpp:440 #49 0x00007ffff3a0418c in WebCore::DocumentLoader::notifyFinished (this=0x99bf60, resource=0x84e430) at ../../Source/WebCore/loader/DocumentLoader.cpp:374 #50 0x00007ffff3aaabc2 in WebCore::CachedResource::checkNotify (this=0x84e430) at ../../Source/WebCore/loader/cache/CachedResource.cpp:332 #51 0x00007ffff3aaaca0 in WebCore::CachedResource::finishLoading (this=0x84e430) at ../../Source/WebCore/loader/cache/CachedResource.cpp:348 #52 0x00007ffff3aa7a14 in WebCore::CachedRawResource::finishLoading (this=0x84e430, data=0x83a640) at ../../Source/WebCore/loader/cache/CachedRawResource.cpp:97 #53 0x00007ffff3a5e3b4 in WebCore::SubresourceLoader::didFinishLoading (this=0x825c90, finishTime=0) at ../../Source/WebCore/loader/SubresourceLoader.cpp:310 #54 0x00007ffff3a5a8d7 in WebCore::ResourceLoader::didFinishLoading (this=0x825c90, finishTime=0) at ../../Source/WebCore/loader/ResourceLoader.cpp:517 #55 0x00007ffff43071e9 in WebCore::readCallback (asyncResult=0x8419b0, data=0x84e8c0) at ../../Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp:1288 #56 0x00007fffec2c02ea in async_ready_callback_wrapper (source_object=0x98cb30, res=0x8419b0, user_data=0x84e8c0) at ginputstream.c:519 #57 0x00007fffec2dfceb in g_task_return_now (task=0x8419b0) at gtask.c:1108 #58 0x00007fffec2dfd09 in complete_in_idle_cb (task=0x8419b0) at gtask.c:1117 #59 0x00007fffeb5362e6 in g_main_dispatch (context=0x677bb0) at gmain.c:3065 #60 g_main_context_dispatch (context=context@entry=0x677bb0) at gmain.c:3641 #61 0x00007fffeb536638 in g_main_context_iterate (context=0x677bb0, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at gmain.c:3712 #62 0x00007fffeb536a3a in g_main_loop_run (loop=0x913eb0) at gmain.c:3906 #63 0x00007ffff30fd900 in WTF::RunLoop::run () at ../../Source/WTF/wtf/gtk/RunLoopGtk.cpp:59 #64 0x00007ffff303a194 in WebKit::ChildProcessMain<WebKit::WebProcess, WebKit::WebProcessMain> (argc=2, argv=0x7fffffffda58) at ../../Source/WebKit2/Shared/unix/ChildProcessMain.h:61 #65 0x00007ffff3039ff9 in WebKit::WebProcessMainUnix (argc=2, argv=0x7fffffffda58) at ../../Source/WebKit2/WebProcess/gtk/WebProcessMainGtk.cpp:73 #66 0x000000000040085d in main (argc=2, argv=0x7fffffffda58) at ../../Source/WebKit2/WebProcess/EntryPoint/unix/WebProcessMain.cpp:32
Created attachment 232562 [details] Test reduction Previous test case was missing the content. Asserting when the RenderTextControl has a child of RenderMultiColumnFlowThread. RenderView 0x7feddae46230 RenderBlock 0x7fedddeda290 HTML 0x7fedd8c7b190 RenderMultiColumnFlowThread 0x7fedd8e092a0 [Rs:0x0 Re:0x0] RenderBody 0x7fedddedcc50 [Rs:0x0 Re:0x0] BODY 0x7feddde0e760 RenderMultiColumnFlowThread 0x7fedd8e09520 [Rs:0x0 Re:0x0] * RenderTextControl 0x7feddde84f50 [Rs:0x0 Re:0x0] INPUT 0x7fedd8cf2ef0 RenderMultiColumnFlowThread 0x7fedd8e09d80 [Rs:0x0 Re:0x0] RenderBlock 0x7feddac1a560 [Rs:0x0 Re:0x0] DIV 0x7fedd8c99b80 RenderMultiColumnSet 0x7fedd8e0a3b0 [Rs:0x0 Re:0x0] RenderText 0x7feddac18c20 #text 0x7fedd8cd0880 "\n" RenderMultiColumnSet 0x7fedd8e097a0 [Rs:0x0 Re:0x0] RenderMultiColumnSet 0x7fedda92a010
This issue no longer occurs under GuardMalloc or ASAN as of r204037. If you believe there is still a bug, please reopen this issue with a revised test case.