<?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>196825</bug_id>
          
          <creation_ts>2019-04-11 12:25:49 -0700</creation_ts>
          <short_desc>REGRESSION (r244182): RemoteLayerTreeDrawingArea::flushLayers() should not be reentrant</short_desc>
          <delta_ts>2019-04-11 15:52:19 -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>Animations</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=177484</see_also>
          <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="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1526428</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-11 12:25:49 -0700</bug_when>
    <thetext>After r244182, RemoteLayerTreeDrawingArea::flushLayers() can be reentrant when running run-webkit-tests. This can happen when notifyDone() is called from the rAF callback which forces repaint. Here is the problematic call stack:

3   0x1033b3acd WebKit::RemoteLayerTreeDrawingArea::flushLayers()
4   0x1033b64be WebKit::RemoteLayerTreeDrawingArea::forceRepaint()
5   0x104462f85 WebKit::WebPage::forceRepaintWithoutCallback()
6   0x10413ddbd WKBundlePageForceRepaint
7   0x4ec12346e WTR::InjectedBundlePage::dump()
8   0x4ec146afd WTR::TestRunner::notifyDone()
9   0x4ec1390a7 WTR::JSTestRunner::notifyDone(OpaqueJSContext const*, OpaqueJSValue*, OpaqueJSValue*, unsigned long, OpaqueJSValue const* const*, OpaqueJSValue const**)
10  0x4cb554d51 long long JSC::APICallbackFunction::call&lt;JSC::JSCallbackFunction&gt;(JSC::ExecState*)
11  0x23a354601027
12  0x4cb4d18b1 llint_entry
13  0x4cb4d18b1 llint_entry
14  0x4cb4d18b1 llint_entry
15  0x4cb4be500 vmEntryToJavaScript
16  0x4cbe3dace JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*)
17  0x4cbe3e0ff JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
18  0x4cc115c4c JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;)
19  0x4cc115d3a JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
20  0x4cc11602e JSC::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
21  0x4d0ec3fdb WebCore::JSExecState::profiledCall(JSC::ExecState*, JSC::ProfilingReason, JSC::JSValue, JSC::CallType, JSC::CallData const&amp;, JSC::JSValue, JSC::ArgList const&amp;, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
22  0x4d0ec3e8f WebCore::JSCallbackData::invokeCallback(WebCore::JSDOMGlobalObject&amp;, JSC::JSObject*, JSC::JSValue, JSC::MarkedArgumentBuffer&amp;, WebCore::JSCallbackData::CallbackType, JSC::PropertyName, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
23  0x4cf65d332 WebCore::JSCallbackDataStrong::invokeCallback(JSC::JSValue, JSC::MarkedArgumentBuffer&amp;, WebCore::JSCallbackData::CallbackType, JSC::PropertyName, WTF::NakedPtr&lt;JSC::Exception&gt;&amp;)
24  0x4d020deb9 WebCore::JSRequestAnimationFrameCallback::handleEvent(double)
25  0x4d15d8344 WebCore::ScriptedAnimationController::serviceRequestAnimationFrameCallbacks(double)
26  0x4d14180d6 WebCore::Document::serviceRequestAnimationFrameCallbacks(double)
27  0x4d1f29387 WebCore::Page::updateRendering()
28  0x1044642d4 WebKit::WebPage::updateRendering()
29  0x1033b3ae9 WebKit::RemoteLayerTreeDrawingArea::flushLayers()
30  0x1033bcf91 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;std::__1::__bind&lt;void (WebKit::RemoteLayerTreeDrawingArea::*&amp;)(), WebKit::RemoteLayerTreeDrawingArea*&gt; &gt;::call()
31  0x1032f665d WTF::Function&lt;void ()&gt;::operator()() const

This call stack was caught by the iOS simulator layout tests because RemoteLayerTreeDrawingAreaProxy::commitLayerTree() asserts the transition IDs are sequential.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526429</commentid>
    <comment_count>1</comment_count>
      <attachid>367233</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-11 12:31:22 -0700</bug_when>
    <thetext>Created attachment 367233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526444</commentid>
    <comment_count>2</comment_count>
      <attachid>367233</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-04-11 13:11:40 -0700</bug_when>
    <thetext>Comment on attachment 367233
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:3659
&gt; +void WebPage::scheduleCompositingLayerFlush()

I don&apos;t think you need this

&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:350
&gt; +        m_webPage.scheduleCompositingLayerFlush();

Why doesn&apos;t this just call scheduleCOmpositingLayerFlush like the above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526459</commentid>
    <comment_count>3</comment_count>
      <attachid>367233</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2019-04-11 13:54:16 -0700</bug_when>
    <thetext>Comment on attachment 367233
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        detected. But scheduleCompositingLayerFlush() to make a final repaint.

But that will be async, which breaks testing. Why bother scheduling it at all?

&gt;&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:350
&gt;&gt; +        m_webPage.scheduleCompositingLayerFlush();
&gt; 
&gt; Why doesn&apos;t this just call scheduleCOmpositingLayerFlush like the above?

Is it really necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526466</commentid>
    <comment_count>4</comment_count>
      <attachid>367239</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-11 14:18:28 -0700</bug_when>
    <thetext>Created attachment 367239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526467</commentid>
    <comment_count>5</comment_count>
      <attachid>367233</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-11 14:22:33 -0700</bug_when>
    <thetext>Comment on attachment 367233
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/WebPage/RemoteLayerTree/RemoteLayerTreeDrawingArea.mm:350
&gt;&gt;&gt; +        m_webPage.scheduleCompositingLayerFlush();
&gt;&gt; 
&gt;&gt; Why doesn&apos;t this just call scheduleCOmpositingLayerFlush like the above?
&gt; 
&gt; Is it really necessary?

It will not be necessary if notifyDone() is the only reason to re-enter this function. I will give it a try and upload another patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526470</commentid>
    <comment_count>6</comment_count>
      <attachid>367240</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2019-04-11 14:29:21 -0700</bug_when>
    <thetext>Created attachment 367240
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526507</commentid>
    <comment_count>7</comment_count>
      <attachid>367240</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-11 15:51:49 -0700</bug_when>
    <thetext>Comment on attachment 367240
Patch

Clearing flags on attachment: 367240

Committed r244198: &lt;https://trac.webkit.org/changeset/244198&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526508</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-11 15:51:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1526510</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-11 15:52:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/49831390&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367233</attachid>
            <date>2019-04-11 12:31:22 -0700</date>
            <delta_ts>2019-04-11 14:18:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196825-20190411123121.patch</filename>
            <type>text/plain</type>
            <size>5569</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE4OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDE5LTA0LTExICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjI0NDE4Mik6IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpIHNo
b3VsZCBub3QgYmUgcmVlbnRyYW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTY4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFbnN1cmUgdGhlIGxheWVyIHRyYW5zYWN0aW9ucyBJRHMgYXJlIHNlcXVl
bnRpYWwuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2gpOgorICAgICAgICAqIHBhZ2UvUGFnZS5o
OgorCiAyMDE5LTA0LTExICBQYWJsbyBTYWF2ZWRyYSAgPHBzYWF2ZWRyYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtXUEVdIEJ1aWxkIGVycm9yIHdpdGggRU5BQkxFX1ZJREVPPU9GRiBhZnRlciBy
MjQ0MDc4CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHJldmlzaW9uIDI0NDE4OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOTksNiArMTI5OSwx
MSBAQCB2b2lkIFBhZ2U6OnVwZGF0ZVJlbmRlcmluZygpCiAgICAgbGF5b3V0SWZOZWVkZWQoKTsK
IH0KIAordm9pZCBQYWdlOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpCit7CisgICAg
cmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyKCkuc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KTsKK30KKwogdm9pZCBQYWdlOjpzdXNwZW5kU2NyaXB0ZWRBbmltYXRpb25zKCkKIHsKICAgICBt
X3NjcmlwdGVkQW5pbWF0aW9uc1N1c3BlbmRlZCA9IHRydWU7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAko
cmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQ3MSw2ICs0NzEsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGxheW91dElmTmVlZGVkKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVSZW5k
ZXJpbmcoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXll
ckZsdXNoKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN1c3BlbmRTY3JpcHRlZEFuaW1h
dGlvbnMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlc3VtZVNjcmlwdGVkQW5pbWF0aW9u
cygpOwpJbmRleDogU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0NDE5MikKKysrIFNvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTktMDQtMTEgIFNhaWQg
QWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNT
SU9OIChyMjQ0MTgyKTogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKCkg
c2hvdWxkIG5vdCBiZSByZWVudHJhbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NjgyNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEJhaWwgb3V0IG9mIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
bHVzaExheWVycygpIGlmIGEgcmVlbnRyYW5jeSBpcworICAgICAgICBkZXRlY3RlZC4gQnV0IHNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkgdG8gbWFrZSBhIGZpbmFsIHJlcGFpbnQuCisK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNj
aGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oOgorCiAyMDE5LTA0LTExICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxl
LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OOiBjaGFuZ2luZyBpUGFkIG9yaWVudGF0aW9uIG9u
IGJsb2dnZXIuY29tIGNyYXNoZXMgdW5kZXIgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eTo6ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKCkKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNDQxODkp
CisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzY1Niw2ICszNjU2LDExIEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUmVuZGVy
aW5nKCkKICAgICBtX3BhZ2UtPnVwZGF0ZVJlbmRlcmluZygpOwogfQogCit2b2lkIFdlYlBhZ2U6
OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3sKKyAgICBtX3BhZ2UtPnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoKCk7Cit9CisKIFdlYkluc3BlY3RvciogV2ViUGFnZTo6aW5z
cGVjdG9yKExhenlDcmVhdGlvblBvbGljeSBiZWhhdmlvcikKIHsKICAgICBpZiAobV9pc0Nsb3Nl
ZCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJl
dmlzaW9uIDI0NDE4OSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzA4LDYgKzMwOCw3IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgbGF5b3V0SWZOZWVkZWQoKTsKICAgICB2b2lkIHVwZGF0ZVJlbmRlcmluZygpOworICAgIHZv
aWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKIAogICAgIGVudW0gY2xhc3MgTGF6
eUNyZWF0aW9uUG9saWN5IHsgVXNlRXhpc3RpbmdPbmx5LCBDcmVhdGVJZk5lZWRlZCB9OwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaAkocmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE2MSw2ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9y
QmFja2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRX
aGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmV4
dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luRmx1c2hM
YXllcnMgeyBmYWxzZSB9OwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbW1pdFF1ZXVlOwog
ICAgIFJlZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVz
aGVyOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQkocmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RpbGVkQmFja2luZy5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNp
bXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQ0
LDYgKzM0NSwxMyBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExhCiAg
ICAgICAgICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogICAgIH0KIAorICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJBRiBjYWxsYmFjayBt
YXkgZm9yY2UgcmVwYWludC4KKyAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKSB7CisgICAgICAgIG1f
d2ViUGFnZS5zY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorCisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gY2hhbmdlKG1faW5GbHVzaExheWVycywg
dHJ1ZSk7CiAgICAgbV93ZWJQYWdlLnVwZGF0ZVJlbmRlcmluZygpOwogCiAgICAgRmxvYXRSZWN0
IHZpc2libGVSZWN0KEZsb2F0UG9pbnQoKSwgbV92aWV3U2l6ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367239</attachid>
            <date>2019-04-11 14:18:28 -0700</date>
            <delta_ts>2019-04-11 14:29:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196825-20190411141827.patch</filename>
            <type>text/plain</type>
            <size>2922</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQxOTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA0LTExICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAo
cjI0NDE4Mik6IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpIHNob3Vs
ZCBub3QgYmUgcmVlbnRyYW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTY4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFbnN1cmUgdGhlIGxheWVyIHRyYW5zYWN0aW9ucyBJRHMgYXJlIHNlcXVlbnRp
YWwuIFNvIGJhaWwgb3V0IG9mCisgICAgICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
bHVzaExheWVycygpIGlmIHJlZW50cmFuY3kgaXMgZGV0ZWN0ZWQuCisgICAgICAgIEJ1dCBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIHRvIG1ha2UgYSBmaW5hbCByZXBhaW50LgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW06CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycyk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaDoKKwogMjAxOS0wNC0xMSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5j
b20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogY2hhbmdpbmcgaVBhZCBvcmllbnRhdGlvbiBvbiBi
bG9nZ2VyLmNvbSBjcmFzaGVzIHVuZGVyIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OmVzdGFibGlzaExheWVyVHJlZVNjcm9sbGluZ1JlbGF0aW9ucygpCkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAkocmV2aXNpb24g
MjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw2
ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9yQmFja2luZ1N0b3JlU3dh
cCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRXaGlsZVdhaXRpbmdGb3JC
YWNraW5nU3RvcmVTd2FwIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmV4dEZsdXNoSXNGb3JJbW1l
ZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luRmx1c2hMYXllcnMgeyBmYWxzZSB9
OwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbW1pdFF1ZXVlOwogICAgIFJlZlB0cjxCYWNr
aW5nU3RvcmVGbHVzaGVyPiBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVzaGVyOwpJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbQko
cmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL1RpbGVkQmFja2luZy5oPgogI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9RdWFydHpD
b3JlU1BJLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbXBvcnQgPHd0Zi9TeXN0
ZW1UcmFjaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQ0LDYgKzM0NSwxMyBAQCB2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExhCiAgICAgICAgICAgICBzY2hl
ZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogICAgIH0KIAorICAgIC8vIFRoaXMgZnVuY3Rp
b24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJBRiBjYWxsYmFjayBtYXkgZm9yY2UgcmVwYWlu
dC4KKyAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKSB7CisgICAgICAgIHNjaGVkdWxlQ29tcG9zaXRp
bmdMYXllckZsdXNoKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTZXRGb3JTY29w
ZTxib29sPiBjaGFuZ2UobV9pbkZsdXNoTGF5ZXJzLCB0cnVlKTsKICAgICBtX3dlYlBhZ2UudXBk
YXRlUmVuZGVyaW5nKCk7CiAKICAgICBGbG9hdFJlY3QgdmlzaWJsZVJlY3QoRmxvYXRQb2ludCgp
LCBtX3ZpZXdTaXplKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367240</attachid>
            <date>2019-04-11 14:29:21 -0700</date>
            <delta_ts>2019-04-11 15:51:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196825-20190411142920.patch</filename>
            <type>text/plain</type>
            <size>2658</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDQxOTIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTA0LTExICBTYWlkIEFib3Ut
SGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAo
cjI0NDE4Mik6IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExheWVycygpIHNob3Vs
ZCBub3QgYmUgcmVlbnRyYW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTY4MjUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFbnN1cmUgdGhlIGxheWVyIHRyYW5zYWN0aW9ucyBJRHMgYXJlIHNlcXVlbnRp
YWwuIFNvIGJhaWwgb3V0IG9mCisgICAgICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpm
bHVzaExheWVycygpIGlmIHJlZW50cmFuY3kgaXMgZGV0ZWN0ZWQuCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWE6OmZsdXNoTGF5ZXJzKToKKwogMjAxOS0wNC0xMSAgQW50dGkgS29pdmlzdG8g
IDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogY2hhbmdpbmcgaVBhZCBv
cmllbnRhdGlvbiBvbiBibG9nZ2VyLmNvbSBjcmFzaGVzIHVuZGVyIFJlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHk6OmVzdGFibGlzaExheWVyVHJlZVNjcm9sbGluZ1JlbGF0aW9ucygpCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEuaAkocmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTE2MSw2ICsxNjEsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV93YWl0aW5nRm9y
QmFja2luZ1N0b3JlU3dhcCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhZEZsdXNoRGVmZXJyZWRX
aGlsZVdhaXRpbmdGb3JCYWNraW5nU3RvcmVTd2FwIHsgZmFsc2UgfTsKICAgICBib29sIG1fbmV4
dEZsdXNoSXNGb3JJbW1lZGlhdGVQYWludCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luRmx1c2hM
YXllcnMgeyBmYWxzZSB9OwogCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBtX2NvbW1pdFF1ZXVlOwog
ICAgIFJlZlB0cjxCYWNraW5nU3RvcmVGbHVzaGVyPiBtX3BlbmRpbmdCYWNraW5nU3RvcmVGbHVz
aGVyOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYS5tbQkocmV2aXNpb24gMjQ0MTg5KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJDb3JlL1NldHRp
bmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RpbGVkQmFja2luZy5oPgogI2ltcG9ydCA8cGFsL3Nw
aS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CisjaW1wb3J0IDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNp
bXBvcnQgPHd0Zi9TeXN0ZW1UcmFjaW5nLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMzQ0
LDYgKzM0NSwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhOjpmbHVzaExhCiAg
ICAgICAgICAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpOwogICAgIH0KIAorICAg
IC8vIFRoaXMgZnVuY3Rpb24gaXMgbm90IHJlZW50cmFudCwgZS5nLiBhIHJBRiBjYWxsYmFjayBt
YXkgZm9yY2UgcmVwYWludC4KKyAgICBpZiAobV9pbkZsdXNoTGF5ZXJzKQorICAgICAgICByZXR1
cm47CisKKyAgICBTZXRGb3JTY29wZTxib29sPiBjaGFuZ2UobV9pbkZsdXNoTGF5ZXJzLCB0cnVl
KTsKICAgICBtX3dlYlBhZ2UudXBkYXRlUmVuZGVyaW5nKCk7CiAKICAgICBGbG9hdFJlY3Qgdmlz
aWJsZVJlY3QoRmxvYXRQb2ludCgpLCBtX3ZpZXdTaXplKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>