<?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>187196</bug_id>
          
          <creation_ts>2018-06-29 14:50:15 -0700</creation_ts>
          <short_desc>Don&apos;t use tracePoints in JS/Wasm entry</short_desc>
          <delta_ts>2018-07-05 12:56:14 -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>JavaScriptCore</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="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1437914</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-29 14:50:15 -0700</bug_when>
    <thetext>trace points are expensive when run many times. Entering the VM can happen many times and in arbitrary, user controlled, ways. Entering wasm can also happen in arbitrary, user controlled ways, therefore, these should not use trace points here unconditionally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437943</commentid>
    <comment_count>1</comment_count>
      <attachid>343958</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-29 15:51:45 -0700</bug_when>
    <thetext>Created attachment 343958
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437944</commentid>
    <comment_count>2</comment_count>
      <attachid>343958</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-29 15:52:10 -0700</bug_when>
    <thetext>Comment on attachment 343958
patch

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

&gt; Source/WebCore/workers/WorkerThread.cpp:146
&gt; +        Thread::setCurrentThreadIsUserInteractive();

need to revert this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437947</commentid>
    <comment_count>3</comment_count>
      <attachid>343958</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-06-29 15:54:54 -0700</bug_when>
    <thetext>Comment on attachment 343958
patch

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

r=me with fix.

&gt;&gt; Source/WebCore/workers/WorkerThread.cpp:146
&gt;&gt; +        Thread::setCurrentThreadIsUserInteractive();
&gt; 
&gt; need to revert this.

I was just about to ask. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437948</commentid>
    <comment_count>4</comment_count>
      <attachid>343959</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-29 15:54:54 -0700</bug_when>
    <thetext>Created attachment 343959
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437961</commentid>
    <comment_count>5</comment_count>
      <attachid>343959</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-06-29 16:15:11 -0700</bug_when>
    <thetext>Comment on attachment 343959
patch

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

&gt; Source/JavaScriptCore/runtime/VMEntryScope.cpp:61
&gt; +        if (Options::useTracePoints())
&gt; +            tracePoint(VMEntryScopeStart);

I don&apos;t like this change. It&apos;s very useful to find times when JS is running in traces, and this entry point hasn&apos;t proven to be too frequent in the past.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1437976</commentid>
    <comment_count>6</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-06-29 16:32:49 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #5)
&gt; Comment on attachment 343959 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=343959&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/runtime/VMEntryScope.cpp:61
&gt; &gt; +        if (Options::useTracePoints())
&gt; &gt; +            tracePoint(VMEntryScopeStart);
&gt; 
&gt; I don&apos;t like this change. It&apos;s very useful to find times when JS is running
&gt; in traces, and this entry point hasn&apos;t proven to be too frequent in the past.

I agree this is very useful. But it being useful is not worth making top level VMEntryScope ~4x slower. We need to:
- Get in the habit of setting the JSC_useTracePoints environment variable to 1 before we use our tracing tools.
- Get other tools we use to set this environment variable too

Programs like this become 4x slower:
```
function foo() {
    let start = Date.now();
    for (let i = 0; i &lt; 10000; ++i) {
        setTimeout(function(){}, 0)
    }
    setTimeout(function(){console.log(Date.now() - start)}, 0);
}
foo();
```
and
```
async function foo() {
    let start = Date.now();
    for (let i = 0; i &lt; 100000; ++i)
        await i;
    console.log(Date.now() - start);
}
foo();
```</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438009</commentid>
    <comment_count>7</comment_count>
      <attachid>343959</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-29 17:05:42 -0700</bug_when>
    <thetext>Comment on attachment 343959
patch

Clearing flags on attachment: 343959

Committed r233378: &lt;https://trac.webkit.org/changeset/233378&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438010</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-29 17:05:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1438012</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-29 17:06:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/41659565&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439497</commentid>
    <comment_count>10</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-07-05 12:41:56 -0700</bug_when>
    <thetext>Another solution is to work with the team responsible for trace points and make them not super slow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439502</commentid>
    <comment_count>11</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-07-05 12:44:55 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #10)
&gt; Another solution is to work with the team responsible for trace points and
&gt; make them not super slow.

I&apos;m already doing that. The plan is to revert this if trace points become fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1439508</commentid>
    <comment_count>12</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-07-05 12:56:14 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #11)
&gt; (In reply to Geoffrey Garen from comment #10)
&gt; &gt; Another solution is to work with the team responsible for trace points and
&gt; &gt; make them not super slow.
&gt; 
&gt; I&apos;m already doing that. The plan is to revert this if trace points become
&gt; fast.

I don&apos;t think we should ever revert this change.  We should aim for VM entry to be about as fast as a normal JS-&gt;JS or wasm-&gt;wasm procedure call.

We wouldn&apos;t call system API in prologues/epilogues of functions, so we shouldn&apos;t call system API in VM entry.  I think that remains true even if that API becomes very fast.  Even super fast APIs never get fast enough for use in prologues and epilogues.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343958</attachid>
            <date>2018-06-29 15:51:45 -0700</date>
            <delta_ts>2018-06-29 15:55:34 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>5762</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzMzcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE4LTA2LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERvbid0IHVzZSB0cmFjZVBvaW50cyBpbiBKUy9XYXNtIGVudHJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcxOTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHB1dHMgVk0gZW50cnkgYW5kIFdh
c20gZW50cnkgdHJhY2VQb2ludHMgYmVoaW5kIGEgcnVudGltZQorICAgICAgICBvcHRpb24uIFRo
aXMgaXMgYSB+NHggc3BlZWR1cCBvbiBhIHNvb24gdG8gYmUgcmVsZWFzZWQgV2FzbQorICAgICAg
ICBiZW5jaG1hcmsuIHRyYWNlUG9pbnRzIHNob3VsZCBiYXNpY2FsbHkgbmV2ZXIgcnVuIG1vcmUg
dGhhbiA1MAorICAgICAgICB0aW1lcyBhIHNlY29uZC4gRW50ZXJpbmcgdGhlIFZNIGFuZCBlbnRl
cmluZyBXYXNtIGFyZSB1c2VyIGNvbnRyb2xsZWQsCisgICAgICAgIGFuZCBjYW4gaGFwcGVuIGh1
bmRyZWRzIG9mIHRob3VzYW5kcyBvZiB0aW1lcyBpbiBhIHNlY29uZC4gRGVwZW5kaW5nCisgICAg
ICAgIG9uIGhvdyB0aGUgV2FzbS9KUyBjb2RlIGlzIHN0cnVjdHVyZWQsIHRoaXMgY2FuIGJlIGRp
c2FzdHJvdXMgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgICogcnVudGltZS9P
cHRpb25zLmg6CisgICAgICAgICogcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwOgorICAgICAgICAo
SlNDOjpWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZSk6CisgICAgICAgIChKU0M6OlZNRW50cnlT
Y29wZTo6flZNRW50cnlTY29wZSk6CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6Cisg
ICAgICAgIChKU0M6Oldhc206OkJCUVBsYW46OmNvbXBpbGVGdW5jdGlvbnMpOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNhbGxXZWJB
c3NlbWJseUZ1bmN0aW9uKToKKwogMjAxOC0wNi0yOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2Zm
QGFwcGxlLmNvbT4KICAgCiAgICAgICAgIElzb0NlbGxTZXQ6OnN3ZWVwVG9GcmVlTGlzdCgpIG5v
dCBzYWZlIHdoZW4gRnVsbCBHQyBpbiBwcm9jZXNzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxMiw3ICs1MTIsOCBA
QCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluCiAgICAgdihib29sLCB1
c2VJbnRsUGx1cmFsUnVsZXMsIGVuYWJsZUludGxQbHVyYWxSdWxlcywgTm9ybWFsLCAiSWYgdHJ1
ZSwgd2Ugd2lsbCBlbmFibGUgSW50bC5QbHVyYWxSdWxlcy4iKSBcCiAgICAgdihib29sLCB1c2VB
cnJheUFsbG9jYXRpb25Qcm9maWxpbmcsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwg
dXNlIG91ciBub3JtYWwgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxpbmcuIElmIGZhbHNlLCB0aGUg
YWxsb2NhdGlvbiBwcm9maWxlIHdpbGwgYWx3YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRlZC4iKSBc
CiAgICAgdihib29sLCBmb3JjZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGNy
ZWF0ZV90aGlzIHdpbGwgYWx3YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkgcHJvdG8g
c3RydWN0dXJlLiIpIFwKLSAgICB2KGJvb2wsIGZvcmNlTWluaVZNTW9kZSwgZmFsc2UsIE5vcm1h
bCwgIklmIHRydWUsIGl0IHdpbGwgZm9yY2UgbWluaSBWTSBtb2RlIG9uLiIpCisgICAgdihib29s
LCBmb3JjZU1pbmlWTU1vZGUsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBpdCB3aWxsIGZvcmNl
IG1pbmkgVk0gbW9kZSBvbi4iKSBcCisgICAgdihib29sLCB1c2VUcmFjZVBvaW50cywgZmFsc2Us
IE5vcm1hbCwgbnVsbHB0cikKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNp
b24gMjMzMzU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsOCBAQCBWTUVudHJ5U2NvcGU6OlZNRW50
cnlTY29wZShWTSYgdm0sIEpTR2xvCiAgICAgICAgIGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBzYW1w
bGluZ1Byb2ZpbGVyID0gdm0uc2FtcGxpbmdQcm9maWxlcigpKQogICAgICAgICAgICAgc2FtcGxp
bmdQcm9maWxlci0+bm90aWNlVk1FbnRyeSgpOwogI2VuZGlmCi0gICAgICAgIHRyYWNlUG9pbnQo
Vk1FbnRyeVNjb3BlU3RhcnQpOworICAgICAgICBpZiAoT3B0aW9uczo6dXNlVHJhY2VQb2ludHMo
KSkKKyAgICAgICAgICAgIHRyYWNlUG9pbnQoVk1FbnRyeVNjb3BlU3RhcnQpOwogICAgIH0KIAog
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOwpAQCAtNzMsNyArNzQsOCBAQCBWTUVudHJ5U2Nv
cGU6On5WTUVudHJ5U2NvcGUoKQogICAgIGlmIChtX3ZtLmVudHJ5U2NvcGUgIT0gdGhpcykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdHJhY2VQb2ludChWTUVudHJ5U2NvcGVFbmQpOworICAgIGlm
IChPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKQorICAgICAgICB0cmFjZVBvaW50KFZNRW50cnlT
Y29wZUVuZCk7CiAgICAgCiAgICAgaWYgKG1fdm0ud2F0Y2hkb2coKSkKICAgICAgICAgbV92bS53
YXRjaGRvZygpLT5leGl0ZWRWTSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUJCUVBsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFQbGFuLmNwcAkocmV2aXNpb24gMjMzMzU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDkg
QEAgdm9pZCBCQlFQbGFuOjpjb21waWxlRnVuY3Rpb25zKENvbXBpbGF0aQogICAgIGlmICghaGFz
V29yaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFjZVNjb3BlIHRyYWNlU2NvcGUoV2Vi
QXNzZW1ibHlDb21waWxlU3RhcnQsIFdlYkFzc2VtYmx5Q29tcGlsZUVuZCk7CisgICAgc3RkOjpv
cHRpb25hbDxUcmFjZVNjb3BlPiB0cmFjZVNjb3BlOworICAgIGlmIChPcHRpb25zOjp1c2VUcmFj
ZVBvaW50cygpKQorICAgICAgICB0cmFjZVNjb3BlLmVtcGxhY2UoV2ViQXNzZW1ibHlDb21waWxl
U3RhcnQsIFdlYkFzc2VtYmx5Q29tcGlsZUVuZCk7CiAgICAgVGhyZWFkQ291bnRIb2xkZXIgaG9s
ZGVyKCp0aGlzKTsKIAogICAgIHNpemVfdCBieXRlc0NvbXBpbGVkID0gMDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksOSBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBUcmFjZVNjb3BlIHRyYWNlU2NvcGUoV2ViQXNzZW1ibHlFeGVjdXRlU3RhcnQsIFdl
YkFzc2VtYmx5RXhlY3V0ZUVuZCk7CisgICAgc3RkOjpvcHRpb25hbDxUcmFjZVNjb3BlPiB0cmFj
ZVNjb3BlOworICAgIGlmIChPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKQorICAgICAgICB0cmFj
ZVNjb3BlLmVtcGxhY2UoV2ViQXNzZW1ibHlFeGVjdXRlU3RhcnQsIFdlYkFzc2VtYmx5RXhlY3V0
ZUVuZCk7CiAKICAgICBWZWN0b3I8SlNWYWx1ZT4gYm94ZWRBcmdzOwogICAgIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZSogaW5zdGFuY2UgPSB3YXNtRnVuY3Rpb24tPmluc3RhbmNlKCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wNi0yOSAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCB1c2UgdHJhY2VQb2ludHMgaW4gSlMv
V2FzbSBlbnRyeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg3MTk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlclRocmVh
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OnN0YXJ0KToKKwogMjAxOC0w
Ni0yOSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdIFdo
ZW4gdGhlIGZvcm1hdHRpbmcgcm9vdCBpcyBhbHNvIGEgY29udGFpbmluZyBibG9jayBmb3Igb3V0
LW9mLWZsb3cgZWxlbWVudHMuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJl
YWQuY3BwCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
clRocmVhZC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Myw2ICsxNDMsNyBAQCB2b2lkIFdvcmtl
clRocmVhZDo6c3RhcnQoV1RGOjpGdW5jdGlvbjx2CiAgICAgbV9ldmFsdWF0ZUNhbGxiYWNrID0g
V1RGTW92ZShldmFsdWF0ZUNhbGxiYWNrKTsKIAogICAgIG1fdGhyZWFkID0gVGhyZWFkOjpjcmVh
dGUoaXNTZXJ2aWNlV29ya2VyVGhyZWFkKCkgPyAiV2ViQ29yZTogU2VydmljZSBXb3JrZXIiIDog
IldlYkNvcmU6IFdvcmtlciIsIFt0aGlzXSB7CisgICAgICAgIFRocmVhZDo6c2V0Q3VycmVudFRo
cmVhZElzVXNlckludGVyYWN0aXZlKCk7CiAgICAgICAgIHdvcmtlclRocmVhZCgpOwogICAgIH0p
OwogfQo=
</data>
<flag name="review"
          id="362012"
          type_id="1"
          status="-"
          setter="mark.lam"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>343959</attachid>
            <date>2018-06-29 15:54:54 -0700</date>
            <delta_ts>2018-06-29 17:05:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>4552</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMzMzcyKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE4LTA2LTI5ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IERvbid0IHVzZSB0cmFjZVBvaW50cyBpbiBKUy9XYXNtIGVudHJ5CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODcxOTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHB1dHMgVk0gZW50cnkgYW5kIFdh
c20gZW50cnkgdHJhY2VQb2ludHMgYmVoaW5kIGEgcnVudGltZQorICAgICAgICBvcHRpb24uIFRo
aXMgaXMgYSB+NHggc3BlZWR1cCBvbiBhIHNvb24gdG8gYmUgcmVsZWFzZWQgV2FzbQorICAgICAg
ICBiZW5jaG1hcmsuIHRyYWNlUG9pbnRzIHNob3VsZCBiYXNpY2FsbHkgbmV2ZXIgcnVuIG1vcmUg
dGhhbiA1MAorICAgICAgICB0aW1lcyBhIHNlY29uZC4gRW50ZXJpbmcgdGhlIFZNIGFuZCBlbnRl
cmluZyBXYXNtIGFyZSB1c2VyIGNvbnRyb2xsZWQsCisgICAgICAgIGFuZCBjYW4gaGFwcGVuIGh1
bmRyZWRzIG9mIHRob3VzYW5kcyBvZiB0aW1lcyBpbiBhIHNlY29uZC4gRGVwZW5kaW5nCisgICAg
ICAgIG9uIGhvdyB0aGUgV2FzbS9KUyBjb2RlIGlzIHN0cnVjdHVyZWQsIHRoaXMgY2FuIGJlIGRp
c2FzdHJvdXMgZm9yCisgICAgICAgIHBlcmZvcm1hbmNlLgorCisgICAgICAgICogcnVudGltZS9P
cHRpb25zLmg6CisgICAgICAgICogcnVudGltZS9WTUVudHJ5U2NvcGUuY3BwOgorICAgICAgICAo
SlNDOjpWTUVudHJ5U2NvcGU6OlZNRW50cnlTY29wZSk6CisgICAgICAgIChKU0M6OlZNRW50cnlT
Y29wZTo6flZNRW50cnlTY29wZSk6CisgICAgICAgICogd2FzbS9XYXNtQkJRUGxhbi5jcHA6Cisg
ICAgICAgIChKU0M6Oldhc206OkJCUVBsYW46OmNvbXBpbGVGdW5jdGlvbnMpOgorICAgICAgICAq
IHdhc20vanMvV2ViQXNzZW1ibHlGdW5jdGlvbi5jcHA6CisgICAgICAgIChKU0M6OmNhbGxXZWJB
c3NlbWJseUZ1bmN0aW9uKToKKwogMjAxOC0wNi0yOCAgTWljaGFlbCBTYWJvZmYgIDxtc2Fib2Zm
QGFwcGxlLmNvbT4KICAgCiAgICAgICAgIElzb0NlbGxTZXQ6OnN3ZWVwVG9GcmVlTGlzdCgpIG5v
dCBzYWZlIHdoZW4gRnVsbCBHQyBpbiBwcm9jZXNzCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxMiw3ICs1MTIsOCBA
QCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluCiAgICAgdihib29sLCB1
c2VJbnRsUGx1cmFsUnVsZXMsIGVuYWJsZUludGxQbHVyYWxSdWxlcywgTm9ybWFsLCAiSWYgdHJ1
ZSwgd2Ugd2lsbCBlbmFibGUgSW50bC5QbHVyYWxSdWxlcy4iKSBcCiAgICAgdihib29sLCB1c2VB
cnJheUFsbG9jYXRpb25Qcm9maWxpbmcsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwg
dXNlIG91ciBub3JtYWwgYXJyYXkgYWxsb2NhdGlvbiBwcm9maWxpbmcuIElmIGZhbHNlLCB0aGUg
YWxsb2NhdGlvbiBwcm9maWxlIHdpbGwgYWx3YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRlZC4iKSBc
CiAgICAgdihib29sLCBmb3JjZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGNy
ZWF0ZV90aGlzIHdpbGwgYWx3YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkgcHJvdG8g
c3RydWN0dXJlLiIpIFwKLSAgICB2KGJvb2wsIGZvcmNlTWluaVZNTW9kZSwgZmFsc2UsIE5vcm1h
bCwgIklmIHRydWUsIGl0IHdpbGwgZm9yY2UgbWluaSBWTSBtb2RlIG9uLiIpCisgICAgdihib29s
LCBmb3JjZU1pbmlWTU1vZGUsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCBpdCB3aWxsIGZvcmNl
IG1pbmkgVk0gbW9kZSBvbi4iKSBcCisgICAgdihib29sLCB1c2VUcmFjZVBvaW50cywgZmFsc2Us
IE5vcm1hbCwgbnVsbHB0cikKIAogCiBlbnVtIE9wdGlvbkVxdWl2YWxlbmNlIHsKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNRW50cnlTY29wZS5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3BlLmNwcAkocmV2aXNp
b24gMjMzMzU5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk1FbnRyeVNjb3Bl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsNyArNTcsOCBAQCBWTUVudHJ5U2NvcGU6OlZNRW50
cnlTY29wZShWTSYgdm0sIEpTR2xvCiAgICAgICAgIGlmIChTYW1wbGluZ1Byb2ZpbGVyKiBzYW1w
bGluZ1Byb2ZpbGVyID0gdm0uc2FtcGxpbmdQcm9maWxlcigpKQogICAgICAgICAgICAgc2FtcGxp
bmdQcm9maWxlci0+bm90aWNlVk1FbnRyeSgpOwogI2VuZGlmCi0gICAgICAgIHRyYWNlUG9pbnQo
Vk1FbnRyeVNjb3BlU3RhcnQpOworICAgICAgICBpZiAoT3B0aW9uczo6dXNlVHJhY2VQb2ludHMo
KSkKKyAgICAgICAgICAgIHRyYWNlUG9pbnQoVk1FbnRyeVNjb3BlU3RhcnQpOwogICAgIH0KIAog
ICAgIHZtLmNsZWFyTGFzdEV4Y2VwdGlvbigpOwpAQCAtNzMsNyArNzQsOCBAQCBWTUVudHJ5U2Nv
cGU6On5WTUVudHJ5U2NvcGUoKQogICAgIGlmIChtX3ZtLmVudHJ5U2NvcGUgIT0gdGhpcykKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgdHJhY2VQb2ludChWTUVudHJ5U2NvcGVFbmQpOworICAgIGlm
IChPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKQorICAgICAgICB0cmFjZVBvaW50KFZNRW50cnlT
Y29wZUVuZCk7CiAgICAgCiAgICAgaWYgKG1fdm0ud2F0Y2hkb2coKSkKICAgICAgICAgbV92bS53
YXRjaGRvZygpLT5leGl0ZWRWTSgpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20v
V2FzbUJCUVBsYW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNt
L1dhc21CQlFQbGFuLmNwcAkocmV2aXNpb24gMjMzMzU5KQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3dhc20vV2FzbUJCUVBsYW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzUsNyArMjM1LDkg
QEAgdm9pZCBCQlFQbGFuOjpjb21waWxlRnVuY3Rpb25zKENvbXBpbGF0aQogICAgIGlmICghaGFz
V29yaygpKQogICAgICAgICByZXR1cm47CiAKLSAgICBUcmFjZVNjb3BlIHRyYWNlU2NvcGUoV2Vi
QXNzZW1ibHlDb21waWxlU3RhcnQsIFdlYkFzc2VtYmx5Q29tcGlsZUVuZCk7CisgICAgc3RkOjpv
cHRpb25hbDxUcmFjZVNjb3BlPiB0cmFjZVNjb3BlOworICAgIGlmIChPcHRpb25zOjp1c2VUcmFj
ZVBvaW50cygpKQorICAgICAgICB0cmFjZVNjb3BlLmVtcGxhY2UoV2ViQXNzZW1ibHlDb21waWxl
U3RhcnQsIFdlYkFzc2VtYmx5Q29tcGlsZUVuZCk7CiAgICAgVGhyZWFkQ291bnRIb2xkZXIgaG9s
ZGVyKCp0aGlzKTsKIAogICAgIHNpemVfdCBieXRlc0NvbXBpbGVkID0gMDsKSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL2pzL1dlYkFzc2VtYmx5RnVuY3Rpb24u
Y3BwCShyZXZpc2lvbiAyMzMzNTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9qcy9X
ZWJBc3NlbWJseUZ1bmN0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzksNyArNzksOSBAQCBz
dGF0aWMgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBjYWxsCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBUcmFjZVNjb3BlIHRyYWNlU2NvcGUoV2ViQXNzZW1ibHlFeGVjdXRlU3RhcnQsIFdl
YkFzc2VtYmx5RXhlY3V0ZUVuZCk7CisgICAgc3RkOjpvcHRpb25hbDxUcmFjZVNjb3BlPiB0cmFj
ZVNjb3BlOworICAgIGlmIChPcHRpb25zOjp1c2VUcmFjZVBvaW50cygpKQorICAgICAgICB0cmFj
ZVNjb3BlLmVtcGxhY2UoV2ViQXNzZW1ibHlFeGVjdXRlU3RhcnQsIFdlYkFzc2VtYmx5RXhlY3V0
ZUVuZCk7CiAKICAgICBWZWN0b3I8SlNWYWx1ZT4gYm94ZWRBcmdzOwogICAgIEpTV2ViQXNzZW1i
bHlJbnN0YW5jZSogaW5zdGFuY2UgPSB3YXNtRnVuY3Rpb24tPmluc3RhbmNlKCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>