<?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>160739</bug_id>
          
          <creation_ts>2016-08-10 10:25:49 -0700</creation_ts>
          <short_desc>EWS should check if the patch is still valid before executing every major step</short_desc>
          <delta_ts>2024-03-12 11:50:30 -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>Tools / Tests</component>
          <version>WebKit Local 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=203756</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=201924</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1219046</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-10 10:25:49 -0700</bug_when>
    <thetext>Most of the time, it&apos;s wasteful for EWS bots to keep building or testing once a patch has become invalid (e.g.: obsoleted or r-).
It would be much better to drop obsoleted patches quickly, and to move to ones that people are actually waiting for.

One step in this direction is for EWS to check if patch is still valid before executing every major step.

Also see &lt;rdar://problem/27768813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219049</commentid>
    <comment_count>1</comment_count>
      <attachid>285733</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-10 10:37:28 -0700</bug_when>
    <thetext>Created attachment 285733
Proposed patch

This does not stop the processing once the build/command has started, but checks for validation more frequently. For e.g.: if the patch fails to build, before attempting _build_without_patch, we would validate and stop.

Note: This fails unit tests because of the change in logic, I will fix it. I want to get feedback on the logic first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219052</commentid>
    <comment_count>2</comment_count>
      <attachid>285733</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-10 10:40:50 -0700</bug_when>
    <thetext>Comment on attachment 285733
Proposed patch

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

&gt; Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py:88
&gt; +        self.validate()

Do you have a list of steps that now validate, and they didn&apos;t before? It&apos;s not obvious to me if this change provides a noticeable improvement - the real benefit would come from the ability to interrupt builds and tests, which would be a much larger change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219055</commentid>
    <comment_count>3</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-10 11:14:29 -0700</bug_when>
    <thetext>This patch perform validation before any step which executes _run_command(). There are 8 such methods: _build_without_patch, _build_and_test_without_patch*(), _clean(), _update(), _apply(), _build(), _land() and _test().

Earlier we were doing validate before clean() and if validation pass, we run all the next steps. I think the major improvement in this patch would be to skip:  _build_without_patch, _build_and_test_without_patch and _test. 

For e.g.: _build_without_patch might take significant time, we can skip it for obsolete patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219057</commentid>
    <comment_count>4</comment_count>
      <attachid>285733</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-08-10 11:22:04 -0700</bug_when>
    <thetext>Comment on attachment 285733
Proposed patch

Makes sense, that&apos;s a non-trivial improvement.

There is some risk of reporting tools being broken by not running all the steps, we should look out for that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219115</commentid>
    <comment_count>5</comment_count>
      <attachid>285756</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2016-08-10 13:54:56 -0700</bug_when>
    <thetext>Created attachment 285756
Updated patch

Simplified the patch and updated unit-tests. Please review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219376</commentid>
    <comment_count>6</comment_count>
      <attachid>285756</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-11 12:46:43 -0700</bug_when>
    <thetext>Comment on attachment 285756
Updated patch

Clearing flags on attachment: 285756

Committed r204382: &lt;http://trac.webkit.org/changeset/204382&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1219377</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-11 12:46:47 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285733</attachid>
            <date>2016-08-10 10:37:28 -0700</date>
            <delta_ts>2016-08-10 13:54:56 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>ews-validate</filename>
            <type>text/plain</type>
            <size>6922</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDE2LTA4LTEwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1Mgc2hvdWxkIGNoZWNrIGlmIHRoZSBwYXRjaCBpcyBzdGlsbCB2YWxp
ZCBiZWZvcmUgZXhlY3V0aW5nIGV2ZXJ5IG1ham9yIHN0ZXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDczOQorICAgICAgICByZGFyOi8vcHJvYmxl
bS8yNzc2ODgxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHk6CisgICAg
ICAgIChDb21taXRRdWV1ZVRhc2sudmFsaWRhdGUpOiBSYWlzZSBhbiBQYXRjaElzTm90VmFsaWQg
ZXhjZXB0aW9uIGluc3RlYWQgb2YgcmV0dXJuaW5nIEZhbHNlLgorICAgICAgICAoQ29tbWl0UXVl
dWVUYXNrLnJ1bik6IHZhbGlkYXRlIG1ldGhvZCBpcyBub3cgZXhlY3V0ZWQgaW4gYmFzZSBjbGFz
cy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHk6CisgICAgICAgIChFYXJseVdhcm5pbmdTeXN0ZW1UYXNrLnZhbGlkYXRlKTogUmFp
c2UgYW4gUGF0Y2hJc05vdFZhbGlkIGV4Y2VwdGlvbiBpbnN0ZWFkIG9mIHJldHVybmluZyBGYWxz
ZS4KKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKTogdmFsaWRhdGUgbWV0aG9k
IGlzIG5vdyBleGVjdXRlZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2sucHk6CisgICAgICAgIChTdHlsZVF1ZXVlVGFzay52
YWxpZGF0ZSk6IFJhaXNlIGFuIFBhdGNoSXNOb3RWYWxpZCBleGNlcHRpb24gaW5zdGVhZCBvZiBy
ZXR1cm5pbmcgRmFsc2UuCisgICAgICAgIChTdHlsZVF1ZXVlVGFzay5ydW4pOiB2YWxpZGF0ZSBt
ZXRob2QgaXMgbm93IGV4ZWN1dGVkIGluIGJhc2UgY2xhc3MuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoQW5h
bHlzaXNUYXNrLl9ydW5fY29tbWFuZCk6IHZhbGlkYXRlIHRoZSBwYXRjaCBiZWZvcmUgZXhlY3V0
aW5nIGFueSBjb21tYW5kLiBUaGlzIGlzIHRvIGVuc3VyZQorICAgICAgICB0aGF0IHdlIGRvIG5v
dCB3YXN0ZSB0aW1lIG9uIGFueSBwYXRjaCB3aGljaCBoYXMgYmVjb21lIGludmFsaWQgKGUuZy46
IG9ic29sZXRlLCByLSkuCisKIDIwMTYtMDgtMTAgIENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6
ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS11bRUZMXSBBTFNBX0NBUkQgZW52
aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHBhc3NlZCBmb3IgbGF5b3V0IHRlc3RzLgpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2su
cHkJKHJldmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
Y29tbWl0cXVldWV0YXNrLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00MywxNyArNDMsMTMgQEAgY2xh
c3MgQ29tbWl0UXVldWVUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKQogICAgICAgICAjIGNvbW1pdC1x
dWV1ZSBpcyBwcm9jZXNzaW5nLgogICAgICAgICBzZWxmLl9wYXRjaCA9IHNlbGYuX2RlbGVnYXRl
LnJlZmV0Y2hfcGF0Y2goc2VsZi5fcGF0Y2gpCiAgICAgICAgIGlmIHNlbGYuX3BhdGNoLmlzX29i
c29sZXRlKCk6Ci0gICAgICAgICAgICBzZWxmLmVycm9yID0gIlBhdGNoIGlzIG9ic29sZXRlLiIK
LSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdFZh
bGlkKHNlbGYuX3BhdGNoLCAiUGF0Y2ggaXMgb2Jzb2xldGUuIikKICAgICAgICAgaWYgc2VsZi5f
cGF0Y2guYnVnKCkuaXNfY2xvc2VkKCk6Ci0gICAgICAgICAgICBzZWxmLmVycm9yID0gIkJ1ZyBp
cyBhbHJlYWR5IGNsb3NlZC4iCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAg
IHJhaXNlIFBhdGNoSXNOb3RWYWxpZChzZWxmLl9wYXRjaCwgIkJ1ZyBpcyBhbHJlYWR5IGNsb3Nl
ZC4iKQogICAgICAgICBpZiBub3Qgc2VsZi5fcGF0Y2guY29tbWl0dGVyKCk6Ci0gICAgICAgICAg
ICBzZWxmLmVycm9yID0gIk5vIHBhdGNoIGNvbW1pdHRlciBmb3VuZC4iCi0gICAgICAgICAgICBy
ZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RWYWxpZChzZWxmLl9wYXRj
aCwgIk5vIHBhdGNoIGNvbW1pdHRlciBmb3VuZC4iKQogICAgICAgICBpZiBzZWxmLl9wYXRjaC5y
ZXZpZXcoKSA9PSAiLSI6Ci0gICAgICAgICAgICBzZWxmLmVycm9yID0gIlBhdGNoIGlzIG1hcmtl
ZCByLS4iCi0gICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJhaXNlIFBhdGNo
SXNOb3RWYWxpZChzZWxmLl9wYXRjaCwgIlBhdGNoIGlzIG1hcmtlZCByLS4iKQogICAgICAgICBy
ZXR1cm4gVHJ1ZQogCiAgICAgZGVmIF92YWxpZGF0ZV9jaGFuZ2Vsb2coc2VsZik6CkBAIC03Miw4
ICs2OCw2IEBAIGNsYXNzIENvbW1pdFF1ZXVlVGFzayhQYXRjaEFuYWx5c2lzVGFzaykKICAgICAg
ICAgcmV0dXJuIHNlbGYuX3Rlc3RfcGF0Y2goKQogCiAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAg
ICAgaWYgbm90IHNlbGYudmFsaWRhdGUoKToKLSAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RW
YWxpZChzZWxmLl9wYXRjaCwgc2VsZi5lcnJvcikKICAgICAgICAgaWYgbm90IHNlbGYuX2NsZWFu
KCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX3VwZGF0
ZSgpOgpAQCAtODksMTAgKzgzLDYgQEAgY2xhc3MgQ29tbWl0UXVldWVUYXNrKFBhdGNoQW5hbHlz
aXNUYXNrKQogICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKCkKICAg
ICAgICAgICAgIGlmIG5vdCBzZWxmLl9kaWRfcGFzc190ZXN0c19yZWNlbnRseSgpOgogICAgICAg
ICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICAjIE1ha2Ugc3VyZSB0aGUgcGF0Y2ggaXMg
c3RpbGwgdmFsaWQgYmVmb3JlIGxhbmRpbmcgKGUuZy4sIG1ha2Ugc3VyZQotICAgICAgICAjIG5v
IG9uZSBoYXMgc2V0IGNvbW1pdC1xdWV1ZS0gc2luY2Ugd2Ugc3RhcnRlZCB3b3JraW5nIG9uIHRo
ZSBwYXRjaC4pCi0gICAgICAgIGlmIG5vdCBzZWxmLnZhbGlkYXRlKCk6Ci0gICAgICAgICAgICBy
YWlzZSBQYXRjaElzTm90VmFsaWQoc2VsZi5fcGF0Y2gsIHNlbGYuZXJyb3IpCiAgICAgICAgICMg
RklYTUU6IFdlIHNob3VsZCB1bmRlcnN0YW5kIHdoeSB0aGUgbGFuZCBmYWlsdXJlIG9jY3VycmVk
IGFuZCByZXRyeSBpZiBwb3NzaWJsZS4KICAgICAgICAgaWYgbm90IHNlbGYuX2xhbmQoKToKICAg
ICAgICAgICAgIHJldHVybiBzZWxmLnJlcG9ydF9mYWlsdXJlKCkKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRh
c2sucHkJKHJldmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5weQkod29ya2luZyBjb3B5KQpAQCAtNDEsMTkgKzQx
LDE0IEBAIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2soUGF0Y2hBbmFseXMKICAgICBkZWYg
dmFsaWRhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdhdGUucmVm
ZXRjaF9wYXRjaChzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgc2VsZi5fcGF0Y2guaXNfb2Jzb2xl
dGUoKToKLSAgICAgICAgICAgIHNlbGYuZXJyb3IgPSAiUGF0Y2ggaXMgb2Jzb2xldGUuIgotICAg
ICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90VmFsaWQo
c2VsZi5fcGF0Y2gsICJQYXRjaCBpcyBvYnNvbGV0ZS4iKQogICAgICAgICBpZiBzZWxmLl9wYXRj
aC5idWcoKS5pc19jbG9zZWQoKToKLSAgICAgICAgICAgIHNlbGYuZXJyb3IgPSAiQnVnIGlzIGFs
cmVhZHkgY2xvc2VkLiIKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmFp
c2UgUGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCAiQnVnIGlzIGFscmVhZHkgY2xvc2VkLiIp
CiAgICAgICAgIGlmIHNlbGYuX3BhdGNoLnJldmlldygpID09ICItIjoKLSAgICAgICAgICAgIHNl
bGYuZXJyb3IgPSAiUGF0Y2ggaXMgbWFya2VkIHItLiIKLSAgICAgICAgICAgIHJldHVybiBGYWxz
ZQorICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCAiUGF0Y2gg
aXMgbWFya2VkIHItLiIpCiAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgcnVuKHNlbGYp
OgotICAgICAgICBpZiBub3Qgc2VsZi52YWxpZGF0ZSgpOgotICAgICAgICAgICAgcmFpc2UgUGF0
Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCBzZWxmLmVycm9yKQogICAgICAgICBpZiBub3Qgc2Vs
Zi5fY2xlYW4oKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICBpZiBub3Qgc2Vs
Zi5fdXBkYXRlKCk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNo
YW5hbHlzaXN0YXNrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkJKHJldmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDYgKzg1LDcgQEAgY2xhc3MgUGF0Y2hBbmFseXNpc1Rhc2sob2JqZWN0KToKICAg
ICAgICAgc2VsZi5fcmVzdWx0c19mcm9tX3BhdGNoX3Rlc3RfcnVuID0gTm9uZQogCiAgICAgZGVm
IF9ydW5fY29tbWFuZChzZWxmLCBjb21tYW5kLCBzdWNjZXNzX21lc3NhZ2UsIGZhaWx1cmVfbWVz
c2FnZSk6CisgICAgICAgIHNlbGYudmFsaWRhdGUoKQogICAgICAgICB0cnk6CiAgICAgICAgICAg
ICBzZWxmLl9kZWxlZ2F0ZS5ydW5fY29tbWFuZChjb21tYW5kKQogICAgICAgICAgICAgc2VsZi5f
ZGVsZWdhdGUuY29tbWFuZF9wYXNzZWQoc3VjY2Vzc19tZXNzYWdlLCBwYXRjaD1zZWxmLl9wYXRj
aCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2su
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9zdHlsZXF1
ZXVldGFzay5weQkocmV2aXNpb24gMjA0MzM1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9zdHlsZXF1ZXVldGFzay5weQkod29ya2luZyBjb3B5KQpAQCAtMzgsMTQgKzM4LDEx
IEBAIGNsYXNzIFN0eWxlUXVldWVUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICBkZWYgdmFs
aWRhdGUoc2VsZik6CiAgICAgICAgIHNlbGYuX3BhdGNoID0gc2VsZi5fZGVsZWdhdGUucmVmZXRj
aF9wYXRjaChzZWxmLl9wYXRjaCkKICAgICAgICAgaWYgc2VsZi5fcGF0Y2guaXNfb2Jzb2xldGUo
KToKLSAgICAgICAgICAgIHNlbGYuZXJyb3IgPSAiUGF0Y2ggaXMgb2Jzb2xldGUuIgotICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90VmFsaWQoc2Vs
Zi5fcGF0Y2gsICJQYXRjaCBpcyBvYnNvbGV0ZS4iKQogICAgICAgICBpZiBzZWxmLl9wYXRjaC5i
dWcoKS5pc19jbG9zZWQoKToKLSAgICAgICAgICAgIHNlbGYuZXJyb3IgPSAiQnVnIGlzIGFscmVh
ZHkgY2xvc2VkLiIKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICAgICAgcmFpc2Ug
UGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCAiQnVnIGlzIGFscmVhZHkgY2xvc2VkLiIpCiAg
ICAgICAgIGlmIHNlbGYuX3BhdGNoLnJldmlldygpID09ICItIjoKLSAgICAgICAgICAgIHNlbGYu
ZXJyb3IgPSAiUGF0Y2ggaXMgbWFya2VkIHItLiIKLSAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCAiUGF0Y2ggaXMg
bWFya2VkIHItLiIpCiAgICAgICAgIHJldHVybiBUcnVlCiAKICAgICBkZWYgX2NoZWNrX3N0eWxl
KHNlbGYpOgpAQCAtNjYsOCArNjMsNiBAQCBjbGFzcyBTdHlsZVF1ZXVlVGFzayhQYXRjaEFuYWx5
c2lzVGFzayk6CiAgICAgICAgICJVbmFibGVkIHRvIGFwcGx5IHdhdGNobGlzdCIpCiAKICAgICBk
ZWYgcnVuKHNlbGYpOgotICAgICAgICBpZiBub3Qgc2VsZi52YWxpZGF0ZSgpOgotICAgICAgICAg
ICAgcmFpc2UgUGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCBzZWxmLmVycm9yKQogICAgICAg
ICBpZiBub3Qgc2VsZi5fY2xlYW4oKToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAg
ICBpZiBub3Qgc2VsZi5fdXBkYXRlKCk6Cg==
</data>
<flag name="review"
          id="309343"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285756</attachid>
            <date>2016-08-10 13:54:56 -0700</date>
            <delta_ts>2016-08-11 12:46:43 -0700</delta_ts>
            <desc>Updated patch</desc>
            <filename>ews-validate-v2</filename>
            <type>text/plain</type>
            <size>6744</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIwNDM0OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI1IEBACisyMDE2LTA4LTEwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBFV1Mgc2hvdWxkIGNoZWNrIGlmIHRoZSBwYXRjaCBpcyBzdGlsbCB2YWxp
ZCBiZWZvcmUgZXhlY3V0aW5nIGV2ZXJ5IG1ham9yIHN0ZXAKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2MDczOQorICAgICAgICByZGFyOi8vcHJvYmxl
bS8yNzc2ODgxMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHk6CisgICAg
ICAgIChDb21taXRRdWV1ZVRhc2sucnVuKTogdmFsaWRhdGUgbWV0aG9kIGlzIG5vdyBleGVjdXRl
ZCBpbiBiYXNlIGNsYXNzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFy
bHl3YXJuaW5nc3lzdGVtdGFzay5weToKKyAgICAgICAgKEVhcmx5V2FybmluZ1N5c3RlbVRhc2su
cnVuKTogdmFsaWRhdGUgbWV0aG9kIGlzIG5vdyBleGVjdXRlZCBpbiBiYXNlIGNsYXNzLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2sucHk6CisgICAg
ICAgIChTdHlsZVF1ZXVlVGFzay52YWxpZGF0ZSk6IFJhaXNlIGFuIFBhdGNoSXNOb3RWYWxpZCBl
eGNlcHRpb24gaW5zdGVhZCBvZiByZXR1cm5pbmcgRmFsc2UuCisgICAgICAgICogU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5weToKKyAgICAgICAgKFBhdGNoQW5h
bHlzaXNUYXNrLl9ydW5fY29tbWFuZCk6IHZhbGlkYXRlIHRoZSBwYXRjaCBiZWZvcmUgZXhlY3V0
aW5nIGFueSBjb21tYW5kLiBUaGlzIGlzIHRvIGVuc3VyZQorICAgICAgICB0aGF0IHdlIGRvIG5v
dCB3YXN0ZSB0aW1lIG9uIGFueSBwYXRjaCB3aGljaCBoYXMgYmVjb21lIGludmFsaWQgKGUuZy46
IG9ic29sZXRlLCByLSkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3BlcmZhbGl6ZXIucHk6CisgICAgICAgIChQZXJmYWxpemVyVGFzay52YWxpZGF0ZSk6IEFkZGVk
LgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRl
c3QucHk6CisgICAgICAgICh0ZXN0X21hbnVhbF9yZWplY3RfZHVyaW5nX3Byb2Nlc3NpbmcpOiBV
cGRhdGVkIHRlc3QgY2FzZS4KKwogMjAxNi0wOC0xMCAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTb3J0IHRoZSBmZWF0dXJlIGZsYWdzIGluIHRoZSBG
RUFUVVJFX0RFRklORVMgbGluZXMKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9i
b3QvY29tbWl0cXVldWV0YXNrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3QvY29tbWl0cXVldWV0YXNrLnB5CShyZXZpc2lvbiAyMDQzMzUpCisrKyBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5weQkod29ya2luZyBj
b3B5KQpAQCAtNzIsOCArNzIsNiBAQCBjbGFzcyBDb21taXRRdWV1ZVRhc2soUGF0Y2hBbmFseXNp
c1Rhc2spCiAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3BhdGNoKCkKIAogICAgIGRlZiBydW4o
c2VsZik6Ci0gICAgICAgIGlmIG5vdCBzZWxmLnZhbGlkYXRlKCk6Ci0gICAgICAgICAgICByYWlz
ZSBQYXRjaElzTm90VmFsaWQoc2VsZi5fcGF0Y2gsIHNlbGYuZXJyb3IpCiAgICAgICAgIGlmIG5v
dCBzZWxmLl9jbGVhbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIGlmIG5v
dCBzZWxmLl91cGRhdGUoKToKQEAgLTg5LDEwICs4Nyw2IEBAIGNsYXNzIENvbW1pdFF1ZXVlVGFz
ayhQYXRjaEFuYWx5c2lzVGFzaykKICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRf
ZmFpbHVyZSgpCiAgICAgICAgICAgICBpZiBub3Qgc2VsZi5fZGlkX3Bhc3NfdGVzdHNfcmVjZW50
bHkoKToKICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKLSAgICAgICAgIyBNYWtlIHN1cmUg
dGhlIHBhdGNoIGlzIHN0aWxsIHZhbGlkIGJlZm9yZSBsYW5kaW5nIChlLmcuLCBtYWtlIHN1cmUK
LSAgICAgICAgIyBubyBvbmUgaGFzIHNldCBjb21taXQtcXVldWUtIHNpbmNlIHdlIHN0YXJ0ZWQg
d29ya2luZyBvbiB0aGUgcGF0Y2guKQotICAgICAgICBpZiBub3Qgc2VsZi52YWxpZGF0ZSgpOgot
ICAgICAgICAgICAgcmFpc2UgUGF0Y2hJc05vdFZhbGlkKHNlbGYuX3BhdGNoLCBzZWxmLmVycm9y
KQogICAgICAgICAjIEZJWE1FOiBXZSBzaG91bGQgdW5kZXJzdGFuZCB3aHkgdGhlIGxhbmQgZmFp
bHVyZSBvY2N1cnJlZCBhbmQgcmV0cnkgaWYgcG9zc2libGUuCiAgICAgICAgIGlmIG5vdCBzZWxm
Ll9sYW5kKCk6CiAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXBvcnRfZmFpbHVyZSgpCkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2su
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdh
cm5pbmdzeXN0ZW10YXNrLnB5CShyZXZpc2lvbiAyMDQzMzUpCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHkJKHdvcmtpbmcgY29weSkK
QEAgLTUyLDggKzUyLDYgQEAgY2xhc3MgRWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5
cwogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAgICAgaWYg
bm90IHNlbGYudmFsaWRhdGUoKToKLSAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RWYWxpZChz
ZWxmLl9wYXRjaCwgc2VsZi5lcnJvcikKICAgICAgICAgaWYgbm90IHNlbGYuX2NsZWFuKCk6CiAg
ICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX3VwZGF0ZSgpOgpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRjaGFuYWx5c2lzdGFzay5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5h
bHlzaXN0YXNrLnB5CShyZXZpc2lvbiAyMDQzMzUpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CSh3b3JraW5nIGNvcHkpCkBAIC04Myw4ICs4
MywxMSBAQCBjbGFzcyBQYXRjaEFuYWx5c2lzVGFzayhvYmplY3QpOgogICAgICAgICBzZWxmLl9z
Y3JpcHRfZXJyb3IgPSBOb25lCiAgICAgICAgIHNlbGYuX3Jlc3VsdHNfYXJjaGl2ZV9mcm9tX3Bh
dGNoX3Rlc3RfcnVuID0gTm9uZQogICAgICAgICBzZWxmLl9yZXN1bHRzX2Zyb21fcGF0Y2hfdGVz
dF9ydW4gPSBOb25lCisgICAgICAgIHNlbGYuZXJyb3IgPSBOb25lCiAKICAgICBkZWYgX3J1bl9j
b21tYW5kKHNlbGYsIGNvbW1hbmQsIHN1Y2Nlc3NfbWVzc2FnZSwgZmFpbHVyZV9tZXNzYWdlKToK
KyAgICAgICAgaWYgbm90IHNlbGYudmFsaWRhdGUoKToKKyAgICAgICAgICAgIHJhaXNlIFBhdGNo
SXNOb3RWYWxpZChzZWxmLl9wYXRjaCwgc2VsZi5lcnJvcikKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgc2VsZi5fZGVsZWdhdGUucnVuX2NvbW1hbmQoY29tbWFuZCkKICAgICAgICAgICAgIHNl
bGYuX2RlbGVnYXRlLmNvbW1hbmRfcGFzc2VkKHN1Y2Nlc3NfbWVzc2FnZSwgcGF0Y2g9c2VsZi5f
cGF0Y2gpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3N0eWxlcXVldWV0
YXNrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc3R5
bGVxdWV1ZXRhc2sucHkJKHJldmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9ib3Qvc3R5bGVxdWV1ZXRhc2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTY2LDggKzY2
LDYgQEAgY2xhc3MgU3R5bGVRdWV1ZVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAi
VW5hYmxlZCB0byBhcHBseSB3YXRjaGxpc3QiKQogCiAgICAgZGVmIHJ1bihzZWxmKToKLSAgICAg
ICAgaWYgbm90IHNlbGYudmFsaWRhdGUoKToKLSAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RW
YWxpZChzZWxmLl9wYXRjaCwgc2VsZi5lcnJvcikKICAgICAgICAgaWYgbm90IHNlbGYuX2NsZWFu
KCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgaWYgbm90IHNlbGYuX3VwZGF0
ZSgpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3BlcmZhbGl6
ZXIucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3BlcmZhbGl6ZXIucHkJKHJldmlzaW9uIDIwNDMzNSkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9wZXJmYWxpemVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC02Miw2ICs2
Miw5IEBAIGNsYXNzIFBlcmZhbGl6ZXJUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKICAgICAgICAg
ZXhjZXB0OgogICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAKKyAgICBkZWYgdmFsaWRhdGUoc2Vs
Zik6CisgICAgICAgIHJldHVybiBUcnVlCisKICAgICBkZWYgcnVuKHNlbGYpOgogICAgICAgICBp
ZiBub3Qgc2VsZi5fcGF0Y2guY29tbWl0dGVyKCkgYW5kIG5vdCBzZWxmLl9wYXRjaC5hdHRhY2hl
cigpLmNhbl9jb21taXQ6CiAgICAgICAgICAgICBzZWxmLl9sb2dnZXIoJ1RoZSBwYXRjaCAlZCBp
cyBub3QgYXV0aG9yaXplZCBieSBhIGNvbW1taXR0ZXInICUgc2VsZi5fcGF0Y2guaWQoKSkKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlc191bml0dGVzdC5weQkocmV2aXNpb24gMjA0MzM1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAt
NDExLDE2ICs0MTEsNiBAQCBNT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUgVGVzdHMg
CiAgICAgICAgIHF1ZXVlLl9vcHRpb25zLnBvcnQgPSBOb25lCiAgICAgICAgIGV4cGVjdGVkX2xv
Z3MgPSAiIiJSdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBj
bGVhbiAtLXBvcnQ9bWFjCiBNT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUgQ2xlYW5l
ZCB3b3JraW5nIGRpcmVjdG9yeQotUnVubmluZzogd2Via2l0LXBhdGNoIC0tc3RhdHVzLWhvc3Q9
ZXhhbXBsZS5jb20gdXBkYXRlIC0tcG9ydD1tYWMKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNvbW1p
dC1xdWV1ZSBVcGRhdGVkIHdvcmtpbmcgZGlyZWN0b3J5Ci1SdW5uaW5nOiB3ZWJraXQtcGF0Y2gg
LS1zdGF0dXMtaG9zdD1leGFtcGxlLmNvbSBhcHBseS1hdHRhY2htZW50IC0tbm8tdXBkYXRlIC0t
bm9uLWludGVyYWN0aXZlIDEwMDAwIC0tcG9ydD1tYWMKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNv
bW1pdC1xdWV1ZSBBcHBsaWVkIHBhdGNoCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSB2YWxpZGF0ZS1jaGFuZ2Vsb2cgLS1jaGVjay1vb3BzIC0tbm9uLWlu
dGVyYWN0aXZlIDEwMDAwIC0tcG9ydD1tYWMKLU1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNvbW1pdC1x
dWV1ZSBDaGFuZ2VMb2cgdmFsaWRhdGVkCi1SdW5uaW5nOiB3ZWJraXQtcGF0Y2ggLS1zdGF0dXMt
aG9zdD1leGFtcGxlLmNvbSBidWlsZCAtLW5vLWNsZWFuIC0tbm8tdXBkYXRlIC0tYnVpbGQtc3R5
bGU9cmVsZWFzZSAtLXBvcnQ9bWFjCi1NT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUg
QnVpbHQgcGF0Y2gKLVJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUu
Y29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWlu
dGVyYWN0aXZlIC0tYnVpbGQtc3R5bGU9cmVsZWFzZSAtLXBvcnQ9bWFjCi1NT0NLOiB1cGRhdGVf
c3RhdHVzOiBjb21taXQtcXVldWUgUGFzc2VkIHRlc3RzCiBNT0NLOiB1cGRhdGVfc3RhdHVzOiBj
b21taXQtcXVldWUgRXJyb3I6IGNvbW1pdC1xdWV1ZSBkaWQgbm90IHByb2Nlc3MgcGF0Y2guIFJl
YXNvbjogUGF0Y2ggaXMgb2Jzb2xldGUuCiBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0
LXF1ZXVlIDEwMDAwCiAiIiIK
</data>

          </attachment>
      

    </bug>

</bugzilla>