<?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>137460</bug_id>
          
          <creation_ts>2014-10-06 13:50:28 -0700</creation_ts>
          <short_desc>Commit queue doesn&apos;t drop obsolete patches sometimes</short_desc>
          <delta_ts>2016-07-18 16:33:18 -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>528+ (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=159903</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="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Jake Nielsen">jake.nielsen.webkit</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>glenn</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1039812</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 13:50:28 -0700</bug_when>
    <thetext>Bug 137364 is long closed, but commit queue is still orange, and keeps rolling. It made over 40 thousands attempts already, isn&apos;t that fun?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039813</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 13:51:40 -0700</bug_when>
    <thetext>I don&apos;t know if I broke this with a recent refactoring, or if it&apos;s always been like this. Jake has graciously agreed to look into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039863</commentid>
    <comment_count>2</comment_count>
      <attachid>239363</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-06 15:53:33 -0700</bug_when>
    <thetext>Created attachment 239363
Adds a call to task.validate() and handles invalid tasks in the same way that EWS does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039864</commentid>
    <comment_count>3</comment_count>
      <attachid>239363</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2014-10-06 15:55:52 -0700</bug_when>
    <thetext>Comment on attachment 239363
Adds a call to task.validate() and handles invalid tasks in the same way that EWS does.

Is it possible to write a unit test for this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039865</commentid>
    <comment_count>4</comment_count>
      <attachid>239363</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-06 15:56:56 -0700</bug_when>
    <thetext>Comment on attachment 239363
Adds a call to task.validate() and handles invalid tasks in the same way that EWS does.

I&apos;m curious why validate() calls in CommitQueueTask don&apos;t work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039986</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 00:32:17 -0700</bug_when>
    <thetext>*** Bug 137481 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039995</commentid>
    <comment_count>6</comment_count>
      <attachid>239363</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 03:56:21 -0700</bug_when>
    <thetext>Comment on attachment 239363
Adds a call to task.validate() and handles invalid tasks in the same way that EWS does.

I checked, it is the right fix, EWS and style queue do the same thing.

task.run() also calls validate, but it simply returns with false
and then the patch is unlocked, but not removed from the queue.

We should validate at the beginning and then call _did_error
to remove the task from the queue.

r=me, but I agree, we should add a unittest for it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039997</commentid>
    <comment_count>7</comment_count>
      <attachid>239404</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 04:18:03 -0700</bug_when>
    <thetext>Created attachment 239404
unittest for the patch

I played a little bit how to unittest this fix, and verified
that the proposed fix is really fix the issue.

output without the proposed fix:
- MOCK: release_lock: commit-queue 10007

output with the proposed fix:
+ MOCK: update_status: commit-queue Error: commit-queue did not process patch.
+ MOCK: release_work_item: commit-queue 10007

Feel free to integrate it to the original patch.
( I only ask for a credit in the changelog. :) )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040001</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 04:35:26 -0700</bug_when>
    <thetext>I found one more nasty bug related to this one: bug137483</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040037</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 09:38:15 -0700</bug_when>
    <thetext>&gt; task.run() also calls validate, but it simply returns with false and then the patch is unlocked

So why is that the right thing? The fact that EWS and style queue do the same thing doesn&apos;t mean that they don&apos;t have a bug, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040039</commentid>
    <comment_count>10</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 09:53:48 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; &gt; task.run() also calls validate, but it simply returns with false and then the patch is unlocked
&gt; 
&gt; So why is that the right thing? The fact that EWS and style queue do the same thing doesn&apos;t mean that they don&apos;t have a bug, too.

The task doesn&apos;t know anything about how the queues work. They simple
do their tasks, validate and run the task and return with False or True.
Check commitqueuetask.py, stylequeuetask.py and commitqueuetask.py

The upper layer should handle the False return value of task.validate(),
as StyleQueue.review_patch() and AbstractEarlyWarningSystem.review_patch()
do properly at the beginning. But CommitQueue.process_work_item didn&apos;t do
it before at all. The proposed patch adds this necessary check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040048</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 10:33:18 -0700</bug_when>
    <thetext>What is the purpose of calling validate() in review_patch()? All tasks&apos; run() methods already do that - often several times - so it seems like we should make sure that the result of the existing check is not ignored, not add another check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040078</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 11:59:22 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; What is the purpose of calling validate() in review_patch()? All tasks&apos; run() methods already do that - often several times - so it seems like we should make sure that the result of the existing check is not ignored, not add another check.

run() returns with False or True. You can&apos;t determine why it returned with False.
The reason can be: not valid patch, unable to build or update repository, ...

But if you call validate() before calling run(), you could simply remove the
patch from the queue if it isn&apos;t valid. Everybody do this, except the CQ.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040084</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 12:17:44 -0700</bug_when>
    <thetext>Yes, certainly. What I&apos;m saying is that we should at the very least delete the first call to validate() inside run() if we are adding it before run(). There is no reason to call validate twice it a row.

However, Jake is going to make validate() raise an exception, so that the caller would know what actually happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040087</commentid>
    <comment_count>14</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2014-10-07 12:23:58 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Yes, certainly. What I&apos;m saying is that we should at the very least delete the first call to validate() inside run() if we are adding it before run(). There is no reason to call validate twice it a row.

I agree.

&gt; However, Jake is going to make validate() raise an exception, so that the caller would know what actually happened.

It is a little bigger refactoring, but let&apos;s see. If we would like to make
validate() to raise excpeption, we could make it private (_validate) and
get rid of the two existing validate call before calling run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040098</commentid>
    <comment_count>15</comment_count>
      <attachid>239428</attachid>
    <who name="Jake Nielsen">jake.nielsen.webkit</who>
    <bug_when>2014-10-07 12:45:21 -0700</bug_when>
    <thetext>Created attachment 239428
Integrates Csaba&apos;s unit test, and makes the validation codepath use exceptions to report invalid patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040113</commentid>
    <comment_count>16</comment_count>
      <attachid>239428</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 13:29:15 -0700</bug_when>
    <thetext>Comment on attachment 239428
Integrates Csaba&apos;s unit test, and makes the validation codepath use exceptions to report invalid patches.

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

&gt; Tools/ChangeLog:26
&gt; +        Remove call to validate() and instead catches the PatchIsNotValid
&gt; +        exception.

Should we also remove the call to validate() in StyleQueue.review_patch()? This patch changes commit queue and EWS, including some code that is shared between style queue and EWS, but it doesn&apos;t fully clean up the style queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040115</commentid>
    <comment_count>17</comment_count>
      <attachid>239428</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-10-07 13:32:59 -0700</bug_when>
    <thetext>Comment on attachment 239428
Integrates Csaba&apos;s unit test, and makes the validation codepath use exceptions to report invalid patches.

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

&gt;&gt; Tools/ChangeLog:26
&gt;&gt; +        exception.
&gt; 
&gt; Should we also remove the call to validate() in StyleQueue.review_patch()? This patch changes commit queue and EWS, including some code that is shared between style queue and EWS, but it doesn&apos;t fully clean up the style queue.

Actually, I guess it doesn&apos;t touch the style queue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040140</commentid>
    <comment_count>18</comment_count>
      <attachid>239428</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-07 15:14:02 -0700</bug_when>
    <thetext>Comment on attachment 239428
Integrates Csaba&apos;s unit test, and makes the validation codepath use exceptions to report invalid patches.

Clearing flags on attachment: 239428

Committed r174408: &lt;http://trac.webkit.org/changeset/174408&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1040141</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-10-07 15:14:07 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239363</attachid>
            <date>2014-10-06 15:53:33 -0700</date>
            <delta_ts>2014-10-07 12:45:21 -0700</delta_ts>
            <desc>Adds a call to task.validate() and handles invalid tasks in the same way that EWS does.</desc>
            <filename>0001-Commit-queue-doesn-t-drop-obsolete-patches-sometimes.patch</filename>
            <type>text/plain</type>
            <size>2083</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA0MTljZDc5OTMyY2E1MzVjODczMDAyODk2YjliOGY5YTAwYzk4YjkwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBNb24sIDYgT2N0IDIwMTQgMTU6NTI6MzEgLTA3MDAKU3ViamVjdDogW1BBVENIXSBD
b21taXQgcXVldWUgZG9lc24ndCBkcm9wIG9ic29sZXRlIHBhdGNoZXMgc29tZXRpbWVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NDYwCgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5w
eToKQWRkcyBhIGNhbGwgdG8gdGFzay52YWxpZGF0ZSgpLiBJZiB0aGUgcGF0Y2ggaXMgbm90IHZh
bGlkLCBhbiBlcnJvciBpcwpnZW5lcmF0ZWQsIHRodXMgc3RvcHBpbmcgdGhlIHNwaW5uaW5nLgoo
Q29tbWl0UXVldWUucHJvY2Vzc193b3JrX2l0ZW0pOgotLS0KIFRvb2xzL0NoYW5nZUxvZyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKysrKysKIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkgfCAgMyArKysKIDIgZmlsZXMgY2hh
bmdlZCwgMTUgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBiOTI4MTY4Li4zMDRiM2VkIDEwMDY0NAotLS0gYS9Ub29scy9D
aGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTQtMTAt
MDYgIEpha2UgTmllbHNlbiAgPGphY29iX25pZWxzZW5AYXBwbGUuY29tPgorCisgICAgICAgIENv
bW1pdCBxdWV1ZSBkb2Vzbid0IGRyb3Agb2Jzb2xldGUgcGF0Y2hlcyBzb21ldGltZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzQ2MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weToKKyAgICAgICAgQWRkcyBhIGNhbGwgdG8gdGFz
ay52YWxpZGF0ZSgpLiBJZiB0aGUgcGF0Y2ggaXMgbm90IHZhbGlkLCBhbiBlcnJvciBpcworICAg
ICAgICBnZW5lcmF0ZWQsIHRodXMgc3RvcHBpbmcgdGhlIHNwaW5uaW5nLgorICAgICAgICAoQ29t
bWl0UXVldWUucHJvY2Vzc193b3JrX2l0ZW0pOgorCiAyMDE0LTEwLTA2ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdC1xdWV1ZXMgUGF0Y2hMb2cg
aXMgaW5jb3JyZWN0IGZvciBwYXRjaGVzIHRoYXQgdG9vayBsZXNzIHRoYW4gYSBzZWNvbmQKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CmluZGV4IGM5
MmRmY2YuLmQxODc2ZTMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1h
bmRzL3F1ZXVlcy5weQpAQCAtMzE2LDYgKzMxNiw5IEBAIGNsYXNzIENvbW1pdFF1ZXVlKFBhdGNo
UHJvY2Vzc2luZ1F1ZXVlLCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIsIENvbW1pdFF1ZXVlVGFz
CiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgc2VsZi5f
Y2Nfd2F0Y2hlcnMocGF0Y2guYnVnX2lkKCkpCiAgICAgICAgIHRhc2sgPSBDb21taXRRdWV1ZVRh
c2soc2VsZiwgcGF0Y2gpCisgICAgICAgIGlmIG5vdCB0YXNrLnZhbGlkYXRlKCk6CisgICAgICAg
ICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyBkaWQgbm90IHByb2Nlc3MgcGF0Y2guIiAl
IHNlbGYubmFtZSkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBpZiB0YXNrLnJ1bigpOgogICAgICAgICAgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBh
dGNoKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>
<flag name="review"
          id="264087"
          type_id="1"
          status="+"
          setter="ossy"
    />
    <flag name="commit-queue"
          id="264088"
          type_id="3"
          status="-"
          setter="ossy"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239404</attachid>
            <date>2014-10-07 04:18:03 -0700</date>
            <delta_ts>2014-10-07 12:45:21 -0700</delta_ts>
            <desc>unittest for the patch</desc>
            <filename>1.patch</filename>
            <type>text/plain</type>
            <size>2809</size>
            <attacher name="Csaba Osztrogonác">ossy</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9i
dWd6aWxsYV9tb2NrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3pp
bGxhL2J1Z3ppbGxhX21vY2sucHkKaW5kZXggODBhZjE2My4uMDY4ZDU5NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX21vY2su
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3pp
bGxhX21vY2sucHkKQEAgLTE0MSw2ICsxNDEsMTUgQEAgX3BhdGNoNyA9IHsgICMgVmFsaWQgcmV2
aWV3LCBwYXRjaCBpcyBtYXJrZWQgb2Jzb2xldGUuCiAgICAgImF0dGFjaGVyX2VtYWlsIjogImVy
aWNAd2Via2l0Lm9yZyIsCiB9CiAKK19wYXRjaDggPSB7ICAjIFJlc29sdmVkIGJ1Zywgd2l0aG91
dCByZXZpZXcgZmxhZywgbm90IG1hcmtlZCBvYnNvbGV0ZSAobWF5YmUgYWxyZWFkeSBsYW5kZWQp
CisgICAgImlkIjogMTAwMDcsCisgICAgImJ1Z19pZCI6IDUwMDA1LAorICAgICJ1cmwiOiAiaHR0
cDovL2V4YW1wbGUuY29tLzEwMDAyIiwKKyAgICAibmFtZSI6ICJQYXRjaDgiLAorICAgICJpc19v
YnNvbGV0ZSI6IEZhbHNlLAorICAgICJpc19wYXRjaCI6IFRydWUsCisgICAgImF0dGFjaGVyX2Vt
YWlsIjogImVyaWNAd2Via2l0Lm9yZyIsCit9CiAKICMgVGhpcyBtYXRjaGVzIG9uZSBvZiBCdWcu
dW5hc3NpZ25lZF9lbWFpbHMKIF91bmFzc2lnbmVkX2VtYWlsID0gIndlYmtpdC11bmFzc2lnbmVk
QGxpc3RzLndlYmtpdC5vcmciCkBAIC0yNDIsNyArMjUxLDcgQEAgX2J1ZzYgPSB7CiAgICAgInJl
cG9ydGVyX2VtYWlsIjogX2NvbW1pdF9xdWV1ZV9lbWFpbCwKICAgICAiYXNzaWduZWRfdG9fZW1h
aWwiOiAiZm9vQGZvby5jb20iLAogICAgICJjY19lbWFpbHMiOiBbXSwKLSAgICAiYXR0YWNobWVu
dHMiOiBbXSwKKyAgICAiYXR0YWNobWVudHMiOiBbX3BhdGNoOF0sCiAgICAgImJ1Z19zdGF0dXMi
OiAiUkVTT0xWRUQiLAogICAgICJjb21tZW50cyI6IFt7ImNvbW1lbnRfZGF0ZSI6ICBkYXRldGlt
ZS5kYXRldGltZSgyMDExLCA2LCAxMSwgOSwgNCwgMyksCiAgICAgICAgICAgICAgICAgICAiY29t
bWVudF9lbWFpbCI6ICJiYXJAZm9vLmNvbSIsCkBAIC0zNDMsNyArMzUyLDggQEAgY2xhc3MgTW9j
a0J1Z3ppbGxhKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfcGF0Y2g0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgX3BhdGNoNSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIF9wYXRjaDYsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBfcGF0Y2g3KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgX3BhdGNoNywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIF9wYXRjaDgpCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAg
ICAgIHNlbGYucXVlcmllcyA9IE1vY2tCdWd6aWxsYVF1ZXJpZXMoc2VsZikKZGlmZiAtLWdpdCBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5
CmluZGV4IGZiMGI2OWQuLjMzMjUwYjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQpAQCAtMzcwLDYgKzM3MCwx
OCBAQCBNT0NLOiByZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1ZXVlIDEwMDA1CiAgICAgICAg
IH0KICAgICAgICAgc2VsZi5hc3NlcnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1ZSgpLCB0b29s
PXRvb2wsIHdvcmtfaXRlbT1yb2xsb3V0X3BhdGNoLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xv
Z3MpCiAKKyAgICBkZWYgdGVzdF9ub25fdmFsaWRfcGF0Y2goc2VsZik6CisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbCgpCisgICAgICAgIHBhdGNoID0gdG9vbC5idWdzLmZldGNoX2F0dGFjaG1lbnQo
MTAwMDcpICAjIF9wYXRjaDgsIHJlc29sdmVkIGJ1Zywgd2l0aG91dCByZXZpZXcgZmxhZywgbm90
IG1hcmtlZCBvYnNvbGV0ZSAobWF5YmUgYWxyZWFkeSBsYW5kZWQpCisgICAgICAgIGV4cGVjdGVk
X2xvZ3MgPSB7CisgICAgICAgICAgICAiYmVnaW5fd29ya19xdWV1ZSI6IHNlbGYuX2RlZmF1bHRf
YmVnaW5fd29ya19xdWV1ZV9sb2dzKCJjb21taXQtcXVldWUiKSwKKyAgICAgICAgICAgICJwcm9j
ZXNzX3dvcmtfaXRlbSI6ICIiIk1PQ0s6IHVwZGF0ZV9zdGF0dXM6IGNvbW1pdC1xdWV1ZSBFcnJv
cjogY29tbWl0LXF1ZXVlIGRpZCBub3QgcHJvY2VzcyBwYXRjaC4KK01PQ0s6IHJlbGVhc2Vfd29y
a19pdGVtOiBjb21taXQtcXVldWUgMTAwMDcKKyIiIiwKKyAgICAgICAgfQorICAgICAgICBzZWxm
LmFzc2VydF9xdWV1ZV9vdXRwdXRzKENvbW1pdFF1ZXVlKCksIHRvb2w9dG9vbCwgd29ya19pdGVt
PXBhdGNoLCBleHBlY3RlZF9sb2dzPWV4cGVjdGVkX2xvZ3MpCisKKwogICAgIGRlZiB0ZXN0X2F1
dG9fcmV0cnkoc2VsZik6CiAgICAgICAgIHF1ZXVlID0gQ29tbWl0UXVldWUoKQogICAgICAgICBv
cHRpb25zID0gTW9jaygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239428</attachid>
            <date>2014-10-07 12:45:21 -0700</date>
            <delta_ts>2014-10-07 15:14:01 -0700</delta_ts>
            <desc>Integrates Csaba&apos;s unit test, and makes the validation codepath use exceptions to report invalid patches.</desc>
            <filename>0001-Commit-queue-doesn-t-drop-obsolete-patches-sometimes.patch</filename>
            <type>text/plain</type>
            <size>13906</size>
            <attacher name="Jake Nielsen">jake.nielsen.webkit</attacher>
            
              <data encoding="base64">RnJvbSA5ZjU5MGIxZjllYWM5ZWM3NzI4ZmNhM2MxOGU5M2NlZjVkNDUwMjFjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKYWtlIE5pZWxzZW4gPGphY29iX25pZWxzZW5AYXBwbGUuY29t
PgpEYXRlOiBUdWUsIDcgT2N0IDIwMTQgMTI6NDM6NDYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBD
b21taXQgcXVldWUgZG9lc24ndCBkcm9wIG9ic29sZXRlIHBhdGNoZXMgc29tZXRpbWVzCiBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3NDYwCk1JTUUtVmVyc2lvbjog
MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z
ZmVyLUVuY29kaW5nOiA4Yml0CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU2NyaXB0
cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX21vY2sucHk6CkFkZHMgYW5v
dGhlciB0ZXN0IHBhdGNoIGZvciB1c2UgaW4gcXVldWVzX3VuaXR0ZXN0LnB5Lgpjb3VydGVzeSBv
ZiBDc2FiYSBPc3p0cm9nb27DoWMgPG9zc3lAd2Via2l0Lm9yZz4KKE1vY2tCdWd6aWxsYSk6Ciog
U2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHk6ClJhaXNlcyBhIFBh
dGNoSXNOb3RWYWxpZCBleGNlcHRpb24gaW4gdGhlIGNhc2Ugb2YgdmFsaWRhdGUoKSByZXR1cm5p
bmcKZmFsc2UuCihDb21taXRRdWV1ZVRhc2sucnVuKToKKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2Vhcmx5d2FybmluZ3N5c3RlbXRhc2sucHk6ClJhaXNlcyBhIFBhdGNoSXNOb3RWYWxpZCBl
eGNlcHRpb24gaW4gdGhlIGNhc2Ugb2YgdmFsaWRhdGUoKSByZXR1cm5pbmcKZmFsc2UuCihFYXJs
eVdhcm5pbmdTeXN0ZW1UYXNrLnJ1bik6CiogU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weToKRGVmaW5lcyBQYXRjaElzTm90VmFsaWQgZXhjZXB0aW9uLgooUGF0
Y2hJc05vdFZhbGlkKToKKFBhdGNoSXNOb3RWYWxpZC5fX2luaXRfXyk6CiogU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKUmVtb3ZlIGNhbGwgdG8g
dmFsaWRhdGUoKSBhbmQgaW5zdGVhZCBjYXRjaGVzIHRoZSBQYXRjaElzTm90VmFsaWQKZXhjZXB0
aW9uLgooQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ucmV2aWV3X3BhdGNoKToKKiBTY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5OgpBZGRzIGxvZ2ljIHRvIGNhdGNoIHRo
ZSBQYXRjaElzTm90VmFsaWQgZXhjZXB0aW9uLgooQ29tbWl0UXVldWUucHJvY2Vzc193b3JrX2l0
ZW0pOgoqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6
CkFkZHMgdGhlIHRlc3Rfbm9uX3ZhbGlkX3BhdGNoIHRlc3QgdG8gZW5zdXJlIHRoYXQgaW52YWxp
ZCBwYXRjaGVzIGFyZQpoYW5kbGVkIHByb3Blcmx5LCBhbmQgZG9uJ3QganVzdCByZXN1bHQgaW4g
aW5kZWZpbml0ZSBzcGlubmluZy4KY291cnRlc3kgb2YgQ3NhYmEgT3N6dHJvZ29uw6FjIDxvc3N5
QHdlYmtpdC5vcmc+Cih0ZXN0X25vbl92YWxpZF9wYXRjaCk6Ci0tLQogVG9vbHMvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAzNiArKysrKysrKysrKysrKysr
KysrKysrCiAuLi4vd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYV9tb2NrLnB5
ICB8IDE0ICsrKysrKystLQogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9jb21taXRx
dWV1ZXRhc2sucHkgfCAgNiArKy0tCiAuLi4vd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5n
c3lzdGVtdGFzay5weSAgICB8ICA0ICstLQogLi4uL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
cGF0Y2hhbmFseXNpc3Rhc2sucHkgfCAgNiArKysrCiAuLi4vd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgICB8ICA3ICsrLS0tCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5ICAgICB8ICA0ICsrLQogLi4uL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5ICAgICAgfCAxNSArKysrKysrKy0KIDggZmls
ZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGI5MjgxNjguLmE0ZDZj
NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwzOSBAQAorMjAxNC0xMC0wNyAgSmFrZSBOaWVsc2VuICA8amFjb2JfbmllbHNlbkBh
cHBsZS5jb20+CisKKyAgICAgICAgQ29tbWl0IHF1ZXVlIGRvZXNuJ3QgZHJvcCBvYnNvbGV0ZSBw
YXRjaGVzIHNvbWV0aW1lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTM3NDYwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFf
bW9jay5weToKKyAgICAgICAgQWRkcyBhbm90aGVyIHRlc3QgcGF0Y2ggZm9yIHVzZSBpbiBxdWV1
ZXNfdW5pdHRlc3QucHkuCisgICAgICAgIGNvdXJ0ZXN5IG9mIENzYWJhIE9zenRyb2dvbsOhYyA8
b3NzeUB3ZWJraXQub3JnPgorICAgICAgICAoTW9ja0J1Z3ppbGxhKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5weToKKyAgICAgICAgUmFpc2Vz
IGEgUGF0Y2hJc05vdFZhbGlkIGV4Y2VwdGlvbiBpbiB0aGUgY2FzZSBvZiB2YWxpZGF0ZSgpIHJl
dHVybmluZworICAgICAgICBmYWxzZS4KKyAgICAgICAgKENvbW1pdFF1ZXVlVGFzay5ydW4pOgor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFz
ay5weToKKyAgICAgICAgUmFpc2VzIGEgUGF0Y2hJc05vdFZhbGlkIGV4Y2VwdGlvbiBpbiB0aGUg
Y2FzZSBvZiB2YWxpZGF0ZSgpIHJldHVybmluZworICAgICAgICBmYWxzZS4KKyAgICAgICAgKEVh
cmx5V2FybmluZ1N5c3RlbVRhc2sucnVuKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5OgorICAgICAgICBEZWZpbmVzIFBhdGNoSXNOb3RW
YWxpZCBleGNlcHRpb24uIAorICAgICAgICAoUGF0Y2hJc05vdFZhbGlkKToKKyAgICAgICAgKFBh
dGNoSXNOb3RWYWxpZC5fX2luaXRfXyk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weToKKyAgICAgICAgUmVtb3ZlIGNhbGwgdG8g
dmFsaWRhdGUoKSBhbmQgaW5zdGVhZCBjYXRjaGVzIHRoZSBQYXRjaElzTm90VmFsaWQKKyAgICAg
ICAgZXhjZXB0aW9uLgorICAgICAgICAoQWJzdHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ucmV2aWV3
X3BhdGNoKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVz
LnB5OgorICAgICAgICBBZGRzIGxvZ2ljIHRvIGNhdGNoIHRoZSBQYXRjaElzTm90VmFsaWQgZXhj
ZXB0aW9uLgorICAgICAgICAoQ29tbWl0UXVldWUucHJvY2Vzc193b3JrX2l0ZW0pOgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHk6Cisg
ICAgICAgIEFkZHMgdGhlIHRlc3Rfbm9uX3ZhbGlkX3BhdGNoIHRlc3QgdG8gZW5zdXJlIHRoYXQg
aW52YWxpZCBwYXRjaGVzIGFyZQorICAgICAgICBoYW5kbGVkIHByb3Blcmx5LCBhbmQgZG9uJ3Qg
anVzdCByZXN1bHQgaW4gaW5kZWZpbml0ZSBzcGlubmluZy4KKyAgICAgICAgY291cnRlc3kgb2Yg
Q3NhYmEgT3N6dHJvZ29uw6FjIDxvc3N5QHdlYmtpdC5vcmc+CisgICAgICAgICh0ZXN0X25vbl92
YWxpZF9wYXRjaCk6CisKIDIwMTQtMTAtMDYgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CiAKICAgICAgICAgd2Via2l0LXF1ZXVlcyBQYXRjaExvZyBpcyBpbmNvcnJlY3QgZm9y
IHBhdGNoZXMgdGhhdCB0b29rIGxlc3MgdGhhbiBhIHNlY29uZApkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhX21vY2sucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5w
eQppbmRleCA4MGFmMTYzLi4wNjhkNTk0IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5weQorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGFfbW9jay5weQpAQCAtMTQx
LDYgKzE0MSwxNSBAQCBfcGF0Y2g3ID0geyAgIyBWYWxpZCByZXZpZXcsIHBhdGNoIGlzIG1hcmtl
ZCBvYnNvbGV0ZS4KICAgICAiYXR0YWNoZXJfZW1haWwiOiAiZXJpY0B3ZWJraXQub3JnIiwKIH0K
IAorX3BhdGNoOCA9IHsgICMgUmVzb2x2ZWQgYnVnLCB3aXRob3V0IHJldmlldyBmbGFnLCBub3Qg
bWFya2VkIG9ic29sZXRlIChtYXliZSBhbHJlYWR5IGxhbmRlZCkKKyAgICAiaWQiOiAxMDAwNywK
KyAgICAiYnVnX2lkIjogNTAwMDUsCisgICAgInVybCI6ICJodHRwOi8vZXhhbXBsZS5jb20vMTAw
MDIiLAorICAgICJuYW1lIjogIlBhdGNoOCIsCisgICAgImlzX29ic29sZXRlIjogRmFsc2UsCisg
ICAgImlzX3BhdGNoIjogVHJ1ZSwKKyAgICAiYXR0YWNoZXJfZW1haWwiOiAiZXJpY0B3ZWJraXQu
b3JnIiwKK30KIAogIyBUaGlzIG1hdGNoZXMgb25lIG9mIEJ1Zy51bmFzc2lnbmVkX2VtYWlscwog
X3VuYXNzaWduZWRfZW1haWwgPSAid2Via2l0LXVuYXNzaWduZWRAbGlzdHMud2Via2l0Lm9yZyIK
QEAgLTI0Miw3ICsyNTEsNyBAQCBfYnVnNiA9IHsKICAgICAicmVwb3J0ZXJfZW1haWwiOiBfY29t
bWl0X3F1ZXVlX2VtYWlsLAogICAgICJhc3NpZ25lZF90b19lbWFpbCI6ICJmb29AZm9vLmNvbSIs
CiAgICAgImNjX2VtYWlscyI6IFtdLAotICAgICJhdHRhY2htZW50cyI6IFtdLAorICAgICJhdHRh
Y2htZW50cyI6IFtfcGF0Y2g4XSwKICAgICAiYnVnX3N0YXR1cyI6ICJSRVNPTFZFRCIsCiAgICAg
ImNvbW1lbnRzIjogW3siY29tbWVudF9kYXRlIjogIGRhdGV0aW1lLmRhdGV0aW1lKDIwMTEsIDYs
IDExLCA5LCA0LCAzKSwKICAgICAgICAgICAgICAgICAgICJjb21tZW50X2VtYWlsIjogImJhckBm
b28uY29tIiwKQEAgLTM0Myw3ICszNTIsOCBAQCBjbGFzcyBNb2NrQnVnemlsbGEob2JqZWN0KToK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXRjaDQs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGF0Y2g1
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3BhdGNo
NiwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9wYXRj
aDcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfcGF0
Y2g3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3Bh
dGNoOCkKIAogICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICAgc2VsZi5xdWVyaWVzID0g
TW9ja0J1Z3ppbGxhUXVlcmllcyhzZWxmKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2JvdC9jb21taXRxdWV1ZXRhc2sucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5weQppbmRleCBhOTVjN2IxLi40ODQ3MDM0IDEwMDY0
NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2NvbW1pdHF1ZXVldGFzay5w
eQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAotZnJv
bSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgUGF0Y2hBbmFseXNp
c1Rhc2ssIFBhdGNoQW5hbHlzaXNUYXNrRGVsZWdhdGUKK2Zyb20gd2Via2l0cHkudG9vbC5ib3Qu
cGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNoQW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lz
VGFza0RlbGVnYXRlLCBQYXRjaElzTm90VmFsaWQKIAogCiBjbGFzcyBDb21taXRRdWV1ZVRhc2tE
ZWxlZ2F0ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTY5LDcgKzY5LDcgQEAgY2xh
c3MgQ29tbWl0UXVldWVUYXNrKFBhdGNoQW5hbHlzaXNUYXNrKToKIAogICAgIGRlZiBydW4oc2Vs
Zik6CiAgICAgICAgIGlmIG5vdCBzZWxmLnZhbGlkYXRlKCk6Ci0gICAgICAgICAgICByZXR1cm4g
RmFsc2UKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RWYWxpZChzZWxmLl9wYXRjaCkKICAg
ICAgICAgaWYgbm90IHNlbGYuX2NsZWFuKCk6CiAgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAg
ICAgICAgaWYgbm90IHNlbGYuX3VwZGF0ZSgpOgpAQCAtODgsNyArODgsNyBAQCBjbGFzcyBDb21t
aXRRdWV1ZVRhc2soUGF0Y2hBbmFseXNpc1Rhc2spOgogICAgICAgICAjIE1ha2Ugc3VyZSB0aGUg
cGF0Y2ggaXMgc3RpbGwgdmFsaWQgYmVmb3JlIGxhbmRpbmcgKGUuZy4sIG1ha2Ugc3VyZQogICAg
ICAgICAjIG5vIG9uZSBoYXMgc2V0IGNvbW1pdC1xdWV1ZS0gc2luY2Ugd2Ugc3RhcnRlZCB3b3Jr
aW5nIG9uIHRoZSBwYXRjaC4pCiAgICAgICAgIGlmIG5vdCBzZWxmLnZhbGlkYXRlKCk6Ci0gICAg
ICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIHJhaXNlIFBhdGNoSXNOb3RWYWxpZChz
ZWxmLl9wYXRjaCkKICAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIHVuZGVyc3RhbmQgd2h5IHRo
ZSBsYW5kIGZhaWx1cmUgb2NjdXJyZWQgYW5kIHJldHJ5IGlmIHBvc3NpYmxlLgogICAgICAgICBp
ZiBub3Qgc2VsZi5fbGFuZCgpOgogICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVwb3J0X2ZhaWx1
cmUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJseXdh
cm5pbmdzeXN0ZW10YXNrLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9lYXJs
eXdhcm5pbmdzeXN0ZW10YXNrLnB5CmluZGV4IGI2NmNmYmMuLjcxNzYzZGMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZWFybHl3YXJuaW5nc3lzdGVtdGFzay5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2Vhcmx5d2FybmluZ3N5c3Rl
bXRhc2sucHkKQEAgLTI2LDcgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNo
QW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0
Y2gKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFBhdGNo
QW5hbHlzaXNUYXNrLCBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlLCBVbmFibGVUb0FwcGx5UGF0
Y2gsIFBhdGNoSXNOb3RWYWxpZAogCiAKIGNsYXNzIEVhcmx5V2FybmluZ1N5c3RlbVRhc2tEZWxl
Z2F0ZShQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKToKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3Mg
RWFybHlXYXJuaW5nU3lzdGVtVGFzayhQYXRjaEFuYWx5c2lzVGFzayk6CiAKICAgICBkZWYgcnVu
KHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi52YWxpZGF0ZSgpOgotICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisgICAgICAgICAgICByYWlzZSBQYXRjaElzTm90VmFsaWQoc2VsZi5fcGF0Y2gp
CiAgICAgICAgIGlmIG5vdCBzZWxmLl9jbGVhbigpOgogICAgICAgICAgICAgcmV0dXJuIEZhbHNl
CiAgICAgICAgIGlmIG5vdCBzZWxmLl91cGRhdGUoKToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hhbmFseXNpc3Rhc2sucHkgYi9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rvb2wvYm90L3BhdGNoYW5hbHlzaXN0YXNrLnB5CmluZGV4IGJhOTY1NGQuLjIw
NWNkNmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvcGF0Y2hh
bmFseXNpc3Rhc2sucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9wYXRj
aGFuYWx5c2lzdGFzay5weQpAQCAtMzYsNiArMzYsMTIgQEAgY2xhc3MgVW5hYmxlVG9BcHBseVBh
dGNoKEV4Y2VwdGlvbik6CiAgICAgICAgIHNlbGYucGF0Y2ggPSBwYXRjaAogCiAKK2NsYXNzIFBh
dGNoSXNOb3RWYWxpZChFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRjaCk6
CisgICAgICAgIEV4Y2VwdGlvbi5fX2luaXRfXyhzZWxmKQorICAgICAgICBzZWxmLnBhdGNoID0g
cGF0Y2gKKworCiBjbGFzcyBQYXRjaEFuYWx5c2lzVGFza0RlbGVnYXRlKG9iamVjdCk6CiAgICAg
ZGVmIHBhcmVudF9jb21tYW5kKHNlbGYpOgogICAgICAgICByYWlzZSBOb3RJbXBsZW1lbnRlZEVy
cm9yKCJzdWJjbGFzc2VzIG11c3QgaW1wbGVtZW50IikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkgYi9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CmluZGV4
IGRiMDVkOTAuLjQ0ZmY0MzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQpAQCAtMzcsNyArMzcsNyBA
QCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJv
cgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5lYXJseXdhcm5pbmdzeXN0ZW10YXNrIGltcG9ydCBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVsZWdhdGUKIGZy
b20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBvcnQgRXhwZWN0ZWRGYWls
dXJlcwogZnJvbSB3ZWJraXRweS50b29sLmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBv
cnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFkZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hh
bmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJsZVRvQXBwbHlQYXRjaAorZnJvbSB3ZWJraXRweS50b29s
LmJvdC5wYXRjaGFuYWx5c2lzdGFzayBpbXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElz
Tm90VmFsaWQKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVl
RW5naW5lCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMucXVldWVzIGltcG9ydCBBYnN0cmFj
dFJldmlld1F1ZXVlCiAKQEAgLTgzLDE1ICs4MywxNCBAQCBjbGFzcyBBYnN0cmFjdEVhcmx5V2Fy
bmluZ1N5c3RlbShBYnN0cmFjdFJldmlld1F1ZXVlLCBFYXJseVdhcm5pbmdTeXN0ZW1UYXNrRGVs
ZQogCiAgICAgZGVmIHJldmlld19wYXRjaChzZWxmLCBwYXRjaCk6CiAgICAgICAgIHRhc2sgPSBF
YXJseVdhcm5pbmdTeXN0ZW1UYXNrKHNlbGYsIHBhdGNoLCBzZWxmLl9vcHRpb25zLnJ1bl90ZXN0
cykKLSAgICAgICAgaWYgbm90IHRhc2sudmFsaWRhdGUoKToKLSAgICAgICAgICAgIHNlbGYuX2Rp
ZF9lcnJvcihwYXRjaCwgIiVzIGRpZCBub3QgcHJvY2VzcyBwYXRjaC4iICUgc2VsZi5uYW1lKQot
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCiAgICAgICAgIHRyeToKICAgICAgICAgICAgIHN1Y2Nl
ZWRlZCA9IHRhc2sucnVuKCkKICAgICAgICAgICAgIGlmIG5vdCBzdWNjZWVkZWQ6CiAgICAgICAg
ICAgICAgICAgIyBDYWxsZXIgdW5sb2NrcyB3aGVuIHJldmlld19wYXRjaCByZXR1cm5zIFRydWUs
IHNvIHdlIG9ubHkgbmVlZCB0byB1bmxvY2sgb24gdHJhbnNpZW50IGZhaWx1cmUuCiAgICAgICAg
ICAgICAgICAgc2VsZi5fdW5sb2NrX3BhdGNoKHBhdGNoKQogICAgICAgICAgICAgcmV0dXJuIHN1
Y2NlZWRlZAorICAgICAgICBleGNlcHQgUGF0Y2hJc05vdFZhbGlkOgorICAgICAgICAgICAgc2Vs
Zi5fZGlkX2Vycm9yKHBhdGNoLCAiJXMgZGlkIG5vdCBwcm9jZXNzIHBhdGNoLiIgJSBzZWxmLm5h
bWUpCiAgICAgICAgIGV4Y2VwdCBVbmFibGVUb0FwcGx5UGF0Y2gsIGU6CiAgICAgICAgICAgICBz
ZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyB1bmFibGUgdG8gYXBwbHkgcGF0Y2guIiAlIHNlbGYu
bmFtZSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKaW5kZXggYzkyZGZjZi4uZDM0ZTkxYyAxMDA2NDQK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CkBAIC01MCw3
ICs1MCw3IEBAIGZyb20gd2Via2l0cHkudG9vbC5ib3QuZXhwZWN0ZWRmYWlsdXJlcyBpbXBvcnQg
RXhwZWN0ZWRGYWlsdXJlcwogZnJvbSB3ZWJraXRweS50b29sLmJvdC5mZWVkZXJzIGltcG9ydCBD
b21taXRRdWV1ZUZlZWRlciwgRVdTRmVlZGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmZsYWt5
dGVzdHJlcG9ydGVyIGltcG9ydCBGbGFreVRlc3RSZXBvcnRlcgogZnJvbSB3ZWJraXRweS50b29s
LmJvdC5sYXlvdXR0ZXN0cmVzdWx0c3JlYWRlciBpbXBvcnQgTGF5b3V0VGVzdFJlc3VsdHNSZWFk
ZXIKLWZyb20gd2Via2l0cHkudG9vbC5ib3QucGF0Y2hhbmFseXNpc3Rhc2sgaW1wb3J0IFVuYWJs
ZVRvQXBwbHlQYXRjaAorZnJvbSB3ZWJraXRweS50b29sLmJvdC5wYXRjaGFuYWx5c2lzdGFzayBp
bXBvcnQgVW5hYmxlVG9BcHBseVBhdGNoLCBQYXRjaElzTm90VmFsaWQKIGZyb20gd2Via2l0cHku
dG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5naW5lLCBRdWV1ZUVuZ2luZURlbGVn
YXRlCiBmcm9tIHdlYmtpdHB5LnRvb2wuYm90LnN0eWxlcXVldWV0YXNrIGltcG9ydCBTdHlsZVF1
ZXVlVGFzaywgU3R5bGVRdWV1ZVRhc2tEZWxlZ2F0ZQogZnJvbSB3ZWJraXRweS50b29sLmNvbW1h
bmRzLnN0ZXBzZXF1ZW5jZSBpbXBvcnQgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyCkBAIC0zMjIs
NiArMzIyLDggQEAgY2xhc3MgQ29tbWl0UXVldWUoUGF0Y2hQcm9jZXNzaW5nUXVldWUsIFN0ZXBT
ZXF1ZW5jZUVycm9ySGFuZGxlciwgQ29tbWl0UXVldWVUYXMKICAgICAgICAgICAgICAgICByZXR1
cm4gVHJ1ZQogICAgICAgICAgICAgc2VsZi5fdW5sb2NrX3BhdGNoKHBhdGNoKQogICAgICAgICAg
ICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGV4Y2VwdCBQYXRjaElzTm90VmFsaWQ6CisgICAgICAg
ICAgICBzZWxmLl9kaWRfZXJyb3IocGF0Y2gsICIlcyBkaWQgbm90IHByb2Nlc3MgcGF0Y2guIiAl
IHNlbGYubmFtZSkKICAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgogICAgICAgICAgICAg
dmFsaWRhdG9yID0gQ29tbWl0dGVyVmFsaWRhdG9yKHNlbGYuX3Rvb2wpCiAgICAgICAgICAgICB2
YWxpZGF0b3IucmVqZWN0X3BhdGNoX2Zyb21fY29tbWl0X3F1ZXVlKHBhdGNoLmlkKCksIHNlbGYu
X2Vycm9yX21lc3NhZ2VfZm9yX2J1Zyh0YXNrLCBwYXRjaCwgZSkpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQppbmRl
eCBmYjBiNjlkLi5jNGQxOTQxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKQEAgLTM3MCw2ICszNzAsMTggQEAg
TU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxMDAwNQogICAgICAgICB9CiAg
ICAgICAgIHNlbGYuYXNzZXJ0X3F1ZXVlX291dHB1dHMoQ29tbWl0UXVldWUoKSwgdG9vbD10b29s
LCB3b3JrX2l0ZW09cm9sbG91dF9wYXRjaCwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQog
CisgICAgZGVmIHRlc3Rfbm9uX3ZhbGlkX3BhdGNoKHNlbGYpOgorICAgICAgICB0b29sID0gTW9j
a1Rvb2woKQorICAgICAgICBwYXRjaCA9IHRvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KDEwMDA3
KSAgIyBfcGF0Y2g4LCByZXNvbHZlZCBidWcsIHdpdGhvdXQgcmV2aWV3IGZsYWcsIG5vdCBtYXJr
ZWQgb2Jzb2xldGUgKG1heWJlIGFscmVhZHkgbGFuZGVkKQorICAgICAgICBleHBlY3RlZF9sb2dz
ID0geworICAgICAgICAgICAgImJlZ2luX3dvcmtfcXVldWUiOiBzZWxmLl9kZWZhdWx0X2JlZ2lu
X3dvcmtfcXVldWVfbG9ncygiY29tbWl0LXF1ZXVlIiksCisgICAgICAgICAgICAicHJvY2Vzc193
b3JrX2l0ZW0iOiAiIiJNT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUgRXJyb3I6IGNv
bW1pdC1xdWV1ZSBkaWQgbm90IHByb2Nlc3MgcGF0Y2guCitNT0NLOiByZWxlYXNlX3dvcmtfaXRl
bTogY29tbWl0LXF1ZXVlIDEwMDA3CisiIiIsCisgICAgICAgIH0KKyAgICAgICAgc2VsZi5hc3Nl
cnRfcXVldWVfb3V0cHV0cyhDb21taXRRdWV1ZSgpLCB0b29sPXRvb2wsIHdvcmtfaXRlbT1wYXRj
aCwgZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQorCisKICAgICBkZWYgdGVzdF9hdXRvX3Jl
dHJ5KHNlbGYpOgogICAgICAgICBxdWV1ZSA9IENvbW1pdFF1ZXVlKCkKICAgICAgICAgb3B0aW9u
cyA9IE1vY2soKQpAQCAtNDA2LDcgKzQxOCw4IEBAIFJ1bm5pbmc6IHdlYmtpdC1wYXRjaCAtLXN0
YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkIC0tbm8tY2xlYW4gLS1uby11cGRhdGUgLS1iCiBN
T0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQtcXVldWUgQnVpbHQgcGF0Y2gKIFJ1bm5pbmc6IHdl
YmtpdC1wYXRjaCAtLXN0YXR1cy1ob3N0PWV4YW1wbGUuY29tIGJ1aWxkLWFuZC10ZXN0IC0tbm8t
Y2xlYW4gLS1uby11cGRhdGUgLS10ZXN0IC0tbm9uLWludGVyYWN0aXZlIC0tcG9ydD1tYWMKIE1P
Q0s6IHVwZGF0ZV9zdGF0dXM6IGNvbW1pdC1xdWV1ZSBQYXNzZWQgdGVzdHMKLU1PQ0s6IHJlbGVh
c2VfbG9jazogY29tbWl0LXF1ZXVlIDEwMDAwCitNT0NLOiB1cGRhdGVfc3RhdHVzOiBjb21taXQt
cXVldWUgRXJyb3I6IGNvbW1pdC1xdWV1ZSBkaWQgbm90IHByb2Nlc3MgcGF0Y2guCitNT0NLOiBy
ZWxlYXNlX3dvcmtfaXRlbTogY29tbWl0LXF1ZXVlIDEwMDAwCiAiIiIKICAgICAgICAgc2VsZi5t
YXhEaWZmID0gTm9uZQogICAgICAgICBPdXRwdXRDYXB0dXJlKCkuYXNzZXJ0X291dHB1dHMoc2Vs
ZiwgcXVldWUucHJvY2Vzc193b3JrX2l0ZW0sIFtRdWV1ZXNUZXN0Lm1vY2tfd29ya19pdGVtXSwg
ZXhwZWN0ZWRfbG9ncz1leHBlY3RlZF9sb2dzKQotLSAKMS45LjMgKEFwcGxlIEdpdC01MCkKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>