<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>136326</bug_id>
          
          <creation_ts>2014-08-27 18:13:05 -0700</creation_ts>
          <short_desc>Crash in new multicolumn code when interacting with position: absolute</short_desc>
          <delta_ts>2017-11-14 02:21:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>MathML</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>alex</cc>
    
    <cc>fred.wang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1031868</commentid>
    <comment_count>0</comment_count>
      <attachid>237277</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2014-08-27 18:13:05 -0700</bug_when>
    <thetext>Created attachment 237277
Repro

The attached simple test case will cause ToT to crash with a null deref. The test case appears to involve creating a MathML element with position: absolute that interacts poorly with the new multicolumn code. A debug build spits out the following backtrace when it hits an assertion:

ASSERTION FAILED: isRenderView() || (region &amp;&amp; flowThread)
/Volumes/Share/Safari/Staging/Source/WebCore/rendering/RenderBox.cpp(140) : WebCore::RenderRegion *WebCore::RenderBox::clampToStartAndEndRegions(WebCore::RenderRegion *) const
1   0x10f1ef790 WTFCrash
2   0x113fc693f WebCore::RenderBox::clampToStartAndEndRegions(WebCore::RenderRegion*) const
3   0x113fdb199 WebCore::computeInlineStaticDistance(WebCore::Length&amp;, WebCore::Length&amp;, WebCore::RenderBox const*, WebCore::RenderBoxModelObject const*, WebCore::LayoutUnit, WebCore::RenderRegion*)
4   0x113fd3ffa WebCore::RenderBox::computePositionedLogicalWidth(WebCore::RenderBox::LogicalExtentComputedValues&amp;, WebCore::RenderRegion*) const
5   0x113fd3176 WebCore::RenderBox::computeLogicalWidthInRegion(WebCore::RenderBox::LogicalExtentComputedValues&amp;, WebCore::RenderRegion*) const
6   0x113fc72f2 WebCore::RenderBox::renderBoxRegionInfo(WebCore::RenderRegion*, WebCore::RenderBox::RenderBoxRegionInfoFlags) const
7   0x113fc732e WebCore::RenderBox::renderBoxRegionInfo(WebCore::RenderRegion*, WebCore::RenderBox::RenderBoxRegionInfoFlags) const
8   0x113fc6e89 WebCore::RenderBox::borderBoxRectInRegion(WebCore::RenderRegion*, WebCore::RenderBox::RenderBoxRegionInfoFlags) const
9   0x1141668bc WebCore::RenderRegion::layoutOverflowRectForBoxForPropagation(WebCore::RenderBox const*)
10  0x1140458bf WebCore::RenderFlowThread::addRegionsOverflowFromChild(WebCore::RenderBox const*, WebCore::RenderBox const*, WebCore::LayoutSize const&amp;)
11  0x113fdfff6 WebCore::RenderBox::addOverflowFromChild(WebCore::RenderBox*, WebCore::LayoutSize const&amp;)
12  0x113f73601 WebCore::RenderBox::addOverflowFromChild(WebCore::RenderBox*)
13  0x113f5f165 WebCore::RenderBlock::addOverflowFromBlockChildren()
14  0x113f5f07a WebCore::RenderBlock::addOverflowFromChildren()
15  0x113f5f1ed WebCore::RenderBlock::computeOverflow(WebCore::LayoutUnit, bool)
16  0x114035783 WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit)
17  0x113f5edad WebCore::RenderBlock::layout()
18  0x1141239b3 WebCore::RenderMathMLRow::layout()
19  0x114123446 WebCore::RenderMathMLRow::layout()
20  0x1130a58dc WebCore::RenderElement::layoutIfNeeded()
21  0x113fb8e3f WebCore::RenderBlockFlow::layoutLineBoxes(bool, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
22  0x113f94823 WebCore::RenderBlockFlow::layoutInlineChildren(bool, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)
23  0x113f9380a WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
24  0x113f5edad WebCore::RenderBlock::layout()
25  0x11403f72b WebCore::RenderFlowThread::layout()
26  0x11412de25 WebCore::RenderMultiColumnFlowThread::layout()
27  0x113fa750f WebCore::RenderBlockFlow::layoutSpecialExcludedChild(bool)
28  0x113f9494f WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;)
29  0x113f9382d WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit)
30  0x113f5edad WebCore::RenderBlock::layout()
31  0x113f9711c WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;)

&lt;rdar://problem/18143573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174381</commentid>
    <comment_count>1</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2016-03-14 03:30:26 -0700</bug_when>
    <thetext>Is it still a problem?

(I also wonder whether it will disappear after the MathML refactoring)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1371346</commentid>
    <comment_count>2</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-11-14 02:21:45 -0800</bug_when>
    <thetext>The testcase does not exhibit any crash for me on trunk. Also, after https://trac.webkit.org/wiki/MathML/Early_2016_Refactoring#Phase1 MathML is no longer implemented with flexbox (so WebCore::RenderFlexibleBox::layoutBlock won&apos;t be called) and is much stricter with invalid markup (as in the testcase). So I&apos;m resolving this as FIXED.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>237277</attachid>
            <date>2014-08-27 18:13:05 -0700</date>
            <delta_ts>2014-08-27 18:13:05 -0700</delta_ts>
            <desc>Repro</desc>
            <filename>multicol-pos-absolute-crash.html</filename>
            <type>text/html</type>
            <size>170</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+PGh0bWw+Cjxib2R5Pgo8ZGl2IHN0eWxlPSItd2Via2l0LWNvbHVtbi1h
eGlzOiB2ZXJ0aWNhbDsiPgo8bWF0aD4KPG1yb3cgc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsi
Pgo8bXN1cD4KPC9tc3VwPgo8L21yb3c+CjwvbWF0aD4KPC9kaXY+CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>