<?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>239823</bug_id>
          
          <creation_ts>2022-04-27 13:32:16 -0700</creation_ts>
          <short_desc>Assertion in RenderTreeBuilder::attachToRenderElementInternal</short_desc>
          <delta_ts>2022-06-07 04:57:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit 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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>msaboff</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1864908</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-27 13:32:16 -0700</bug_when>
    <thetext>Assertion in RenderTreeBuilder::attachToRenderElementInternal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864909</commentid>
    <comment_count>1</comment_count>
      <attachid>458463</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-27 13:34:04 -0700</bug_when>
    <thetext>Created attachment 458463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864910</commentid>
    <comment_count>2</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-27 13:34:07 -0700</bug_when>
    <thetext>&lt;rdar://problem/92390285&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1864982</commentid>
    <comment_count>3</comment_count>
      <attachid>458463</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-04-27 16:35:54 -0700</bug_when>
    <thetext>Comment on attachment 458463
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=458463&amp;action=review

&gt; Source/WebCore/rendering/updating/RenderTreeBuilder.cpp:456
&gt; +    if (beforeChild &amp;&amp; beforeChild-&gt;parent() != &amp;parent)
&gt; +        beforeChild = nullptr;
&gt; +

This indicates an invalid (and unexpected) tree structure. These fuzzer tests usually trigger many tree mutations and eventually find a bug in our code that corrupts the tree structure. We normally try to address the real issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865011</commentid>
    <comment_count>4</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-04-27 17:47:55 -0700</bug_when>
    <thetext>Yes, beforeChild-&gt;parent() is null with this stack trace.  Something is messed up.

1   0x2c25b0e90 WebCore::RenderTreeBuilder::attachToRenderElementInternal(WebCore::RenderElement&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*, WebCore::RenderObject::IsInternalMove)
2   0x2c25ae3d4 WebCore::RenderTreeBuilder::attachToRenderElement(WebCore::RenderElement&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*)
3   0x2c25d29e8 WebCore::RenderTreeBuilder::Inline::attachIgnoringContinuation(WebCore::RenderInline&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*)
4   0x2c25d1e10 WebCore::RenderTreeBuilder::Inline::attach(WebCore::RenderInline&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*)
5   0x2c25acb04 WebCore::RenderTreeBuilder::attachInternal(WebCore::RenderElement&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*)
6   0x2c25ab330 WebCore::RenderTreeBuilder::attach(WebCore::RenderElement&amp;, std::__1::unique_ptr&lt;WebCore::RenderObject, WebCore::RenderObjectDeleter&gt;, WebCore::RenderObject*)
7   0x2c260001c WebCore::RenderTreeUpdater::createRenderer(WebCore::Element&amp;, WebCore::RenderStyle&amp;&amp;)
8   0x2c25fd6d0 WebCore::RenderTreeUpdater::updateElementRenderer(WebCore::Element&amp;, WebCore::Style::ElementUpdate const&amp;)
9   0x2c25fc938 WebCore::RenderTreeUpdater::updateRenderTree(WebCore::ContainerNode&amp;)
10  0x2c25fbc48 WebCore::RenderTreeUpdater::commit(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
11  0x2bdccf278 WebCore::Document::updateRenderTree(std::__1::unique_ptr&lt;WebCore::Style::Update const, std::__1::default_delete&lt;WebCore::Style::Update const&gt; &gt;)
12  0x2bdccfef0 WebCore::Document::resolveStyle(WebCore::Document::ResolveStyleType)
13  0x2bdcd1ad0 WebCore::Document::updateStyleIfNeeded()
14  0x2bfebb9a4 WebCore::FrameView::updateLayoutAndStyleIfNeededRecursive()
15  0x2c0071a18 WebCore::Page::layoutIfNeeded()
16  0x2c00736b4 WebCore::Page::updateRendering()
17  0x12792bf90 WebKit::WebPage::updateRendering()
18  0x125857bb4 WebKit::TiledCoreAnimationDrawingArea::updateRendering(WebKit::TiledCoreAnimationDrawingArea::UpdateRenderingType)
19  0x1258578e4 WebKit::TiledCoreAnimationDrawingArea::forceRepaint()
20  0x127928828 WebKit::WebPage::forceRepaintWithoutCallback()
21  0x126d56d90 WKBundlePageForceRepaint</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1865757</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-01 20:58:50 -0700</bug_when>
    <thetext>it looks like when a RenderInline in continuation has pseudo renderer, we don&apos;t manage to remove the pseudo renderer as we clean up the continuation. 

This is an inline content in continuation (we are in the middle of transitioning the tree).

B---YGLS- -+  RenderView at (0,0) size 800x600 renderer-&gt;(0x2a1002620) layout-&gt;[normal child]
B-----LS- -+*   HTML RenderBlock at (0,0) size 800x600 renderer-&gt;(0x2a1003720) node-&gt;(0x2a1000fb0) layout-&gt;[self][normal child]
I----G--- -+      &lt;pseudo&gt; RenderInline renderer-&gt;(0x2a1003e20) node-&gt;(0x2a1003d80) layout-&gt;[self][normal child]
I---YG--- -+        RenderQuote renderer-&gt;(0x2a10040b0) layout-&gt;[self][normal child]
I---YG--- -+          RenderText renderer-&gt;(0x2a10041b0) layout-&gt;[self]
I-------- -+      SPAN RenderInline renderer-&gt;(0x2a1003f10) node-&gt;(0x2a1003a20) continuation-&gt;(0x2a10044e0) layout-&gt;[self]
I-------- -+      SPAN RenderInline renderer-&gt;(0x2a10044e0) node-&gt;(0x2a1003a20) layout-&gt;[self]
I----G--- -+      &lt;pseudo&gt; RenderInline renderer-&gt;(0x2a1004670) node-&gt;(0x2a10045d0) layout-&gt;[self]
I---YG--- --        RenderQuote renderer-&gt;(0x2a1004760)
I---YG--- --          RenderText renderer-&gt;(0x2a1004860)

and after destroying RenderInline(0x2a1003f10) -and cleaning up the continuation, we end up with leftover pseudo renderers.

B---YGLS- -+  RenderView at (0,0) size 800x600 renderer-&gt;(0x2a1002620) layout-&gt;[normal child]
B-----LS- -+    HTML RenderBlock at (0,0) size 800x600 renderer-&gt;(0x2a1003720) node-&gt;(0x2a1000fb0) layout-&gt;[self][normal child]
I----G--- -+      &lt;pseudo&gt; RenderInline renderer-&gt;(0x2a1003e20) node-&gt;(0x2a1003d80) layout-&gt;[self][normal child]
I---YG--- -+        RenderQuote renderer-&gt;(0x2a10040b0) layout-&gt;[self][normal child]
I---YG--- -+          RenderText renderer-&gt;(0x2a10041b0) layout-&gt;[self]
I----G--- -+      &lt;pseudo&gt; RenderInline renderer-&gt;(0x2a1004670) node-&gt;(0x2a10045d0) layout-&gt;[self]
I---YG--- --        RenderQuote renderer-&gt;(0x2a1004760)
I---YG--- --          RenderText renderer-&gt;(0x2a1004860)
I-------- -+*     Q RenderInline renderer-&gt;(0x2a1005aa0) node-&gt;(0x2a1003900) layout-&gt;[self]
and they confuse the tree builder which picks the wrong beforeChild as the insertion point when adding a child renderer under Q as a subsequent tree mutation step.


The fix is to clean up these pseudo renderers as we destroy their &quot;associated&quot; renderers (in continuation).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1866128</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-05-03 08:18:24 -0700</bug_when>
    <thetext>I managed to make this test flaky and the difference between the crashing and the non-crashing tree building is as follows:

both start with a fully built tree with continuation:

RenderView at (0,0) size 573x600 renderer-&gt;(0x114002620)
  HTML RenderBlock at (0,0) size 573x600 renderer-&gt;(0x114003720) node-&gt;(0x114000fb0)
    RenderBlock at (0,0) size 573x18 renderer-&gt;(0x114004260)
      &lt;pseudo&gt; RenderInline renderer-&gt;(0x114003e20) node-&gt;(0x114003d80)
        RenderQuote renderer-&gt;(0x1140040b0)
          RenderText renderer-&gt;(0x1140041b0)
      SPAN RenderInline renderer-&gt;(0x114003f10) node-&gt;(0x114003a20) continuation-&gt;(0x114001780)
    RenderBlock at (0,18) size 573x0 renderer-&gt;(0x114001780) continuation-&gt;(0x1140044e0)
      DIV RenderBlock at (0,0) size 573x0 renderer-&gt;(0x114001640) node-&gt;(0x114003bd0)
    RenderBlock at (0,18) size 573x18 renderer-&gt;(0x1140043a0)
      SPAN RenderInline renderer-&gt;(0x1140044e0) node-&gt;(0x114003a20)
      &lt;pseudo&gt; RenderInline renderer-&gt;(0x114004670) node-&gt;(0x1140045d0)
        RenderQuote renderer-&gt;(0x114004760)
          RenderText renderer-&gt;(0x114004860)

this essentially maps to &lt;q style=&quot;display: contents&quot;&gt;&lt;span&gt;&lt;div&gt;&lt;/div&lt;/span&gt;&lt;/q&gt;

at this point we turn &lt;q&gt; to &quot;display: block&quot;. It triggers a tree re-building.

The non-crashing case first initiates a full tear-down on the tree (step #1) -&gt;

(this is the result of the tear-down process)
RenderView at (0,0) size 573x600 renderer-&gt;(0x114002620) layout-&gt;[normal child]
  HTML RenderBlock at (0,0) size 573x600 renderer-&gt;(0x114003720) node-&gt;(0x114000fb0) layout-&gt;[self][normal child]

and start building it again by adding &lt;q&gt; (step #2):
RenderView at (0,0) size 573x600 renderer-&gt;(0x114002620) layout-&gt;[normal child]
  HTML RenderBlock at (0,0) size 573x600 renderer-&gt;(0x114003720) node-&gt;(0x114000fb0) layout-&gt;[self][normal child]
    Q RenderInline renderer-&gt;(0x114003e20) node-&gt;(0x114003900) layout-&gt;[self]

and complete the tree by inserting the pseudo renderers etc.


However in the crashing case, before we start tearing down the tree, we first insert the &lt;q&gt; instead (this is step #2 in the working case)

RenderView at (0,0) size 573x600 renderer-&gt;(0x166002620) layout-&gt;[normal child]
  HTML RenderBlock at (0,0) size 573x600 renderer-&gt;(0x166003720) node-&gt;(0x166000fb0) layout-&gt;[normal child]
    RenderBlock at (0,0) size 573x18 renderer-&gt;(0x166004260)
      &lt;pseudo&gt; RenderInline renderer-&gt;(0x166003e20) node-&gt;(0x166003d80)
        RenderQuote renderer-&gt;(0x1660040b0)
          RenderText renderer-&gt;(0x1660041b0)
      SPAN RenderInline renderer-&gt;(0x166003f10) node-&gt;(0x166003a20) continuation-&gt;(0x166001780)
    RenderBlock at (0,18) size 573x0 renderer-&gt;(0x166001780) continuation-&gt;(0x1660044e0)
      DIV RenderBlock at (0,0) size 573x0 renderer-&gt;(0x166001640) node-&gt;(0x166003bd0)
    RenderBlock at (0,18) size 573x18 renderer-&gt;(0x1660043a0) layout-&gt;[normal child]
      SPAN RenderInline renderer-&gt;(0x1660044e0) node-&gt;(0x166003a20)
      &lt;pseudo&gt; RenderInline renderer-&gt;(0x166004670) node-&gt;(0x1660045d0)
        RenderQuote renderer-&gt;(0x166004760)
          RenderText renderer-&gt;(0x166004860)
      Q RenderInline renderer-&gt;(0x166005aa0) node-&gt;(0x166003900) layout-&gt;[self]

and start the tear-down process after (step #1 in the working case)

(this is the result of the full tear-down process)
RenderView at (0,0) size 573x600 renderer-&gt;(0x166002620) layout-&gt;[normal child]
  HTML RenderBlock at (0,0) size 573x600 renderer-&gt;(0x166003720) node-&gt;(0x166000fb0) layout-&gt;[self][normal child]
    &lt;pseudo&gt; RenderInline renderer-&gt;(0x166003e20) node-&gt;(0x166003d80) layout-&gt;[self][normal child]
      RenderQuote renderer-&gt;(0x1660040b0) layout-&gt;[self][normal child]
        RenderText renderer-&gt;(0x1660041b0) layout-&gt;[self]
    &lt;pseudo&gt; RenderInline renderer-&gt;(0x166004670) node-&gt;(0x1660045d0) layout-&gt;[self]
      RenderQuote renderer-&gt;(0x166004760)
        RenderText renderer-&gt;(0x166004860)
    Q RenderInline renderer-&gt;(0x166005aa0) node-&gt;(0x166003900) layout-&gt;[self]

At this point the pseudo renderers are at the wrong positions (they are supposed to be under Q) and additional insertions (as we start building up the tree) may assert.


tl;dr;
working case: we completely tear down the tree (with continuation) before turning &lt;q&gt; from &quot;display: contents&quot; to &quot;display: block&quot;
crashing case: we create and insert the renderer for &lt;q&gt; before tearing down the tree and the tear-down process produces an invalid tree.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872980</commentid>
    <comment_count>7</comment_count>
      <attachid>459891</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-31 09:01:08 -0700</bug_when>
    <thetext>Created attachment 459891
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872984</commentid>
    <comment_count>8</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-05-31 09:09:24 -0700</bug_when>
    <thetext>*** Bug 240251 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873122</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-31 14:01:35 -0700</bug_when>
    <thetext>Found 3 new test failures: webgl/2.0.0/conformance/textures/image_bitmap_from_image_bitmap/tex-2d-rgba-rgba-unsigned_short_5_5_5_1.html, webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8-rg-unsigned_byte.html, webgl/2.0.0/conformance2/textures/image_bitmap_from_image_bitmap/tex-2d-rg8ui-rg_integer-unsigned_byte.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873245</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-06-01 01:54:17 -0700</bug_when>
    <thetext>Committed r295083 (251178@main): &lt;https://commits.webkit.org/251178@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 459891.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1874471</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-06-07 04:57:31 -0700</bug_when>
    <thetext>*** Bug 241147 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458463</attachid>
            <date>2022-04-27 13:34:04 -0700</date>
            <delta_ts>2022-05-31 09:01:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239823-20220427133403.patch</filename>
            <type>text/plain</type>
            <size>4040</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzNTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2VjZTAxYjljMDJhMDk3
ZmZhM2I2OTQxNTVhYTc0ODNjNmY0NDJjOS4uODY3ZDYwMmZlMmNjY2JiOTVjZGZhOTM3YjgwZDdm
ZDUzYjI1MGExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTA0LTI3ICBBbGV4
IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQXNzZXJ0
aW9uIGluIFJlbmRlclRyZWVCdWlsZGVyOjphdHRhY2hUb1JlbmRlckVsZW1lbnRJbnRlcm5hbAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5ODIzCisg
ICAgICAgIDxyZGFyOi8vOTIzOTAyODU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGxhc3QgYmVmb3JlQ2hpbGQtPnBhcmVudCgpIHdhcyByZXR1
cm5pbmcgYSBub24tbnVsbCBSZW5kZXJPYmplY3QgdGhhdCB3YXMgbm90ICZwYXJlbnQuCisgICAg
ICAgIEluIHRoaXMgY2FzZSwgdXNlIGEgbnVsbCBiZWZvcmVDaGlsZC4KKworICAgICAgICBUZXN0
OiBmYXN0L2RvbS9yZW1vdmVfZnJvbV90cmVlX2NyYXNoLmh0bWwKKworICAgICAgICAqIHJlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUcmVlQnVpbGRlcjo6YXR0YWNoVG9SZW5kZXJFbGVtZW50SW50ZXJuYWwpOgorCiAyMDIy
LTA0LTI3ICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSAtd2Vi
a2l0LXRyYW5zZm9ybS1zdHlsZSBhbiBhbGlhcyBvZiB0cmFuc2Zvcm0tc3R5bGUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZUJ1aWxkZXIu
Y3BwCmluZGV4IDYwNmFkYWYwYjcwNGEwM2Y5N2MyMjA4ZjkwYzY1MTViOWVjZjU1ZTYuLmE4MjNi
ZWVlYmEwNzAyYjIwNTRmNTIzNWU0ZWMwZDMxYWRlZGZiZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlQnVpbGRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRyZWVCdWlsZGVyLmNwcApAQCAt
NDUxLDcgKzQ1MSw5IEBAIHZvaWQgUmVuZGVyVHJlZUJ1aWxkZXI6OmF0dGFjaFRvUmVuZGVyRWxl
bWVudEludGVybmFsKFJlbmRlckVsZW1lbnQmIHBhcmVudCwgUmVuCiAgICAgd2hpbGUgKGJlZm9y
ZUNoaWxkICYmIGJlZm9yZUNoaWxkLT5wYXJlbnQoKSAmJiBiZWZvcmVDaGlsZC0+cGFyZW50KCkg
IT0gJnBhcmVudCkKICAgICAgICAgYmVmb3JlQ2hpbGQgPSBiZWZvcmVDaGlsZC0+cGFyZW50KCk7
CiAKLSAgICBBU1NFUlQoIWJlZm9yZUNoaWxkIHx8IGJlZm9yZUNoaWxkLT5wYXJlbnQoKSA9PSAm
cGFyZW50KTsKKyAgICBpZiAoYmVmb3JlQ2hpbGQgJiYgYmVmb3JlQ2hpbGQtPnBhcmVudCgpICE9
ICZwYXJlbnQpCisgICAgICAgIGJlZm9yZUNoaWxkID0gbnVsbHB0cjsKKwogICAgIEFTU0VSVCgh
aXM8UmVuZGVyVGV4dD4oYmVmb3JlQ2hpbGQpIHx8ICFkb3duY2FzdDxSZW5kZXJUZXh0PigqYmVm
b3JlQ2hpbGQpLmlubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMoKSk7CiAKICAgICAvLyBU
YWtlIHRoZSBvd25lcnNoaXAuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzVhMzkyNTZjZmI2ZTFkOTE1ODY0OGNlZDU0NTk0
MWVlMzMyOTBiNy4uNTkzMjY1YzRmNTg0Yjk1Y2VlNjJkNWU1MmNjNTllNmJhNTVjNWJjZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTA0LTI3ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQXNzZXJ0aW9uIGluIFJlbmRlclRyZWVCdWls
ZGVyOjphdHRhY2hUb1JlbmRlckVsZW1lbnRJbnRlcm5hbAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM5ODIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9yZW1vdmVfZnJvbV90cmVlX2Ny
YXNoLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vcmVtb3ZlX2Zyb21f
dHJlZV9jcmFzaC5odG1sOiBBZGRlZC4KKwogMjAyMi0wNC0yNyAgVGltIE5ndXllbiAgPG50aW1A
YXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgLXdlYmtpdC10cmFuc2Zvcm0tc3R5bGUgYW4gYWxp
YXMgb2YgdHJhbnNmb3JtLXN0eWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9y
ZW1vdmVfZnJvbV90cmVlX2NyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3JlbW92ZV9mcm9tX3RyZWVfY3Jhc2gtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlYWI4Mzcw
NDBmNzBlOWU1ZDdlYjEwY2VjZDFlZjUyM2I3ZWRjYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9yZW1vdmVfZnJvbV90cmVlX2NyYXNoLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDIgQEAKK0FMRVJUOiB0aGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNo
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbW92ZV9mcm9tX3RyZWVfY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3JlbW92ZV9mcm9tX3RyZWVfY3Jhc2guaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zYmE0NzFiZDU1M2VkM2JjZDljNDNmYWExNGQwZGZhNWE1ODkwNzNmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vcmVtb3ZlX2Zyb21fdHJlZV9j
cmFzaC5odG1sCkBAIC0wLDAgKzEsMjYgQEAKKzxzdHlsZT4KKyAgOm50aC1sYXN0LWNoaWxkKG9k
ZCkgeworICAgIGRpc3BsYXk6IGNvbnRlbnRzOworICB9Cis8L3N0eWxlPgorPHNjcmlwdD4KKyAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOyBhbGVydCgi
dGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaCIpIH0KKyAgb25sb2FkID0gKCkg
PT4geworICAgIGxldCBxMCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3EnKTsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZChxMCk7CisgICAgbGV0IHNwYW4wID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgnc3BhbicpOworICAgIHEwLmFwcGVuZChzcGFuMCk7CisgICAgcTAuYXBwZW5kKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBzcGFuMC5hcHBlbmQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOworICAgIHNwYW4wLmFwcGVuZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCdkaXYnKSk7CisgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgZG9jdW1lbnQu
c3R5bGVTaGVldHNbMF0uaW5zZXJ0UnVsZShgeHggeyB5eTogeno7IH1gKTsKKyAgICBsZXQgbGlu
azAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdsaW5rJyk7CisgICAgbGluazAuaHJlZiA9IGBk
YXRhOmA7CisgICAgbGluazAucmVsID0gJ3N0eWxlc2hlZXQnOworICAgIGRvY3VtZW50LmhlYWQu
YXBwZW5kKGxpbmswKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZChkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCdkaXYnKSk7CisgIH07Cis8L3NjcmlwdD4KKzxib2R5PgorPC9ib2R5Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459891</attachid>
            <date>2022-05-31 09:01:08 -0700</date>
            <delta_ts>2022-06-01 01:54:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-239823-20220531190107.patch</filename>
            <type>text/plain</type>
            <size>3487</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">RnJvbSBjOTQyYzM0YWYzZWQ3MmY2M2MxZmNkMTRjNjY0NzQxOWRlN2RmOTdkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbnR0aSBLb2l2aXN0byA8YW50dGlAYXBwbGUuY29tPgpEYXRl
OiBUdWUsIDMxIE1heSAyMDIyIDE4OjU4OjIyICswMzAwClN1YmplY3Q6IFtQQVRDSF0gQXNzZXJ0
aW9uIGluIFJlbmRlclRyZWVCdWlsZGVyOjphdHRhY2hUb1JlbmRlckVsZW1lbnRJbnRlcm5hbAog
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzOTgyMyA8cmRhcjovLzky
MzkwMjg1PgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgoqIExheW91dFRlc3RzL2Zhc3Qv
Y3NzL2Rpc3BsYXktY29udGVudC13aXRoLXBlbmRpbmctc3R5bGVzaGVldC1jcmFzaC1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgoqIExheW91dFRlc3RzL2Zhc3QvY3NzL2Rpc3BsYXktY29udGVudC13aXRo
LXBlbmRpbmctc3R5bGVzaGVldC1jcmFzaC5odG1sOiBBZGRlZC4KKiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHA6CihXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVy
OjpyZXNvbHZlRWxlbWVudCk6CgpXZSBjYW4ndCBza2lwIHJlc29sdXRpb24gZm9yIGVsZW1lbnRz
IHRoYXQgd2UgaGF2ZSBhbHJlYWR5IGNvbXB1dGVkIHN0eWxlIGZvci4gVGhpcyBpbmNsdWRlcyBl
bGVtZW50cyB3aXRoIGRpc3BsYXk6Y29udGVudHMuCi0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVUcmVlUmVzb2x2ZXIuY3BwICAgIHwgIDIgKy0KIC4uLndpdGgtcGVuZGluZy1zdHlsZXNo
ZWV0LWNyYXNoLWV4cGVjdGVkLnR4dCB8ICAyICsrCiAuLi5jb250ZW50LXdpdGgtcGVuZGluZy1z
dHlsZXNoZWV0LWNyYXNoLmh0bWwgfCAyOCArKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNo
YW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEwMDY0
NCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9kaXNwbGF5LWNvbnRlbnQtd2l0aC1wZW5kaW5nLXN0eWxl
c2hlZXQtY3Jhc2gtZXhwZWN0ZWQudHh0CiBjcmVhdGUgbW9kZSAxMDA2NDQgTGF5b3V0VGVzdHMv
ZmFzdC9jc3MvZGlzcGxheS1jb250ZW50LXdpdGgtcGVuZGluZy1zdHlsZXNoZWV0LWNyYXNoLmh0
bWwKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5jcHAKaW5kZXggYzky
YzQwNGM5MjQ3Li5hOTgzYTRkY2M4ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRy
ZWVSZXNvbHZlci5jcHAKQEAgLTIwOCw3ICsyMDgsNyBAQCBhdXRvIFRyZWVSZXNvbHZlcjo6Y29t
cHV0ZURlc2NlbmRhbnRzVG9SZXNvbHZlKENoYW5nZSBjaGFuZ2UsIFZhbGlkaXR5IHZhbGlkaXR5
LAogCiBhdXRvIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwg
UmVzb2x1dGlvblR5cGUgcmVzb2x1dGlvblR5cGUpIC0+IHN0ZDo6cGFpcjxFbGVtZW50VXBkYXRl
LCBEZXNjZW5kYW50c1RvUmVzb2x2ZT4KIHsKLSAgICBpZiAobV9kaWRTZWVQZW5kaW5nU3R5bGVz
aGVldCAmJiAhZWxlbWVudC5yZW5kZXJlcigpICYmICFtX2RvY3VtZW50LmlzSWdub3JpbmdQZW5k
aW5nU3R5bGVzaGVldHMoKSkgeworICAgIGlmIChtX2RpZFNlZVBlbmRpbmdTdHlsZXNoZWV0ICYm
ICFlbGVtZW50LnJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoKSAmJiAhbV9kb2N1bWVudC5p
c0lnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzKCkpIHsKICAgICAgICAgbV9kb2N1bWVudC5zZXRI
YXNOb2Rlc1dpdGhNaXNzaW5nU3R5bGUoKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9kaXNwbGF5LWNvbnRlbnQtd2l0aC1wZW5k
aW5nLXN0eWxlc2hlZXQtY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
ZGlzcGxheS1jb250ZW50LXdpdGgtcGVuZGluZy1zdHlsZXNoZWV0LWNyYXNoLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzODBmYmY3NmUxYQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Rpc3BsYXktY29udGVudC13
aXRoLXBlbmRpbmctc3R5bGVzaGVldC1jcmFzaC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBA
CitUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2Rpc3BsYXktY29udGVudC13aXRoLXBlbmRpbmctc3R5bGVzaGVl
dC1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZGlzcGxheS1jb250ZW50LXdpdGgt
cGVuZGluZy1zdHlsZXNoZWV0LWNyYXNoLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi4xMTMxYTE1MDFmOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9kaXNwbGF5LWNvbnRlbnQtd2l0aC1wZW5kaW5nLXN0eWxlc2hlZXQtY3Jhc2gu
aHRtbApAQCAtMCwwICsxLDI4IEBACis8c3R5bGU+CisgIDpudGgtbGFzdC1jaGlsZChvZGQpIHsK
KyAgICBkaXNwbGF5OiBjb250ZW50czsKKyAgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIG9ubG9h
ZCA9ICgpID0+IHsKKyAgICBsZXQgcTAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdxJyk7Cisg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmQocTApOworICAgIGxldCBzcGFuMCA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKKyAgICBxMC5hcHBlbmQoc3BhbjApOworICAgIHEwLmFwcGVu
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgc3BhbjAuYXBwZW5kKGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBzcGFuMC5hcHBlbmQoZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgnZGl2JykpOworICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOworICAgIGRv
Y3VtZW50LnN0eWxlU2hlZXRzWzBdLmluc2VydFJ1bGUoYHh4IHsgeXk6IHp6OyB9YCk7CisgICAg
bGV0IGxpbmswID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbGluaycpOworICAgIGxpbmswLmhy
ZWYgPSBgZGF0YTpgOworICAgIGxpbmswLnJlbCA9ICdzdHlsZXNoZWV0JzsKKyAgICBkb2N1bWVu
dC5oZWFkLmFwcGVuZChsaW5rMCk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmQoZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgnZGl2JykpOworICB9OworPC9zY3JpcHQ+Cis8Ym9keT4KK1RoaXMgdGVz
dCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KKzwvYm9keT4KLS0gCjIuMzIuMCAoQXBwbGUg
R2l0LTEzMikKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>