<?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>48173</bug_id>
          
          <creation_ts>2010-10-22 23:48:16 -0700</creation_ts>
          <short_desc>EWS never removes invalid patch ids</short_desc>
          <delta_ts>2010-10-23 21:45:15 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35460</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>mihaip</cc>
    
    <cc>ossy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>298326</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-22 23:48:16 -0700</bug_when>
    <thetext>EWS never removes invalid patch ids</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298328</commentid>
    <comment_count>1</comment_count>
      <attachid>71624</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-22 23:52:54 -0700</bug_when>
    <thetext>Created attachment 71624
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298339</commentid>
    <comment_count>2</comment_count>
      <attachid>71624</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-23 00:19:22 -0700</bug_when>
    <thetext>Comment on attachment 71624
Patch

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

I&apos;ve lost track of how this is supposed to work at this point.

&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:214
&gt; +            # FIXME: Using a fake patch because release_work_item has the wrong API.
&gt; +            # We also don&apos;t really need to release the lock (although that&apos;s fine),
&gt; +            # mostly we just need to remove this bogus patch from our queue.
&gt; +            # If for some reason bugzilla is just down, then it will be re-fed later.
&gt; +            patch = Attachment({&apos;id&apos;: patch_id}, None)

:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298429</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-10-23 10:50:50 -0700</bug_when>
    <thetext>Understandable.

The old EWS system:
- Each EWS bot woke up every 2 minutes and grabbed the list of r? patches.
- EWS would grab from queues.webkit.org the last status for any patch id (and cache it)
- The first patch w/o status would be processed.

Pros:
- Simple, fully federated.
Cons:
- Only processes patches which are r? at the time the EWS gets to them.
- Only one EWS bot per queue is possible.
- WorkItems queue list displayed at queues.webkit.org/queue-status/queue-name is never up-to-date.


New EWS System:
- A feeder queue wakes up every 30 seconds, looking for r? patches.
- Feeder feeds patches into queues.webkit.org via /submit-to-ews
- /submit-to-ews checks the last per-queue QueueStatus for the submitted patch_id.  If there is no status (or the status is &quot;retry&quot;) then the patch_id is added to the WorkItems for that queue.
- queues.webkit.org/next-patch/queue-name returns the first patch in the WorkItems list which is not locked by the ActiveWorkItems list.
- The individual EWS queues process the patches and are expected to use /release-patch when the patch should be removed from the WorkItems list.

Pros:
- Any patch which is ever r? for 30s will be processed.
- Arbitrary patches can be processes (they don&apos;t even need r?)
- Any number of bots can service a single queue.
- queues.webkit.org/queue-status/queue-name is kept up-to-date by the feeder queue.
Cons:
- Making all the right code call /release-patch has proved complicated.
- We now see (and process) all r? patches (which currently seems more than some bots can handle).
- Current design conflates &quot;remove from WorkItems&quot; and &quot;unlock the patch&quot; which it shouldn&apos;t.  (trunk can&apos;t build should &quot;unlock&quot; the patch, but not remove it, etc.)


Hopefully that brings you more up-to-speed.

This patch just plugs one more /release-patch hole.

Once we have the EWS queues back workign reliably, I want to go back and split /release-patch into two separate calls (possibly moving the auto-lock release back into the server -- remember the magic retry status?).  I also want to restructure the /release-patch calls so that we only have to make them in one or two places, instead of the 8 that we do now.

I&apos;d like to just keep putting /release-patch bandaids on for now until we get the EWS bots back under control.  After they&apos;re under control then contemplate a design simplification.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298513</commentid>
    <comment_count>4</comment_count>
      <attachid>71624</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-10-23 21:29:15 -0700</bug_when>
    <thetext>Comment on attachment 71624
Patch

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

&gt;&gt; WebKitTools/Scripts/webkitpy/tool/commands/queues.py:214
&gt;&gt; +            # FIXME: Using a fake patch because release_work_item has the wrong API.
&gt;&gt; +            # We also don&apos;t really need to release the lock (although that&apos;s fine),
&gt;&gt; +            # mostly we just need to remove this bogus patch from our queue.
&gt;&gt; +            # If for some reason bugzilla is just down, then it will be re-fed later.
&gt;&gt; +            patch = Attachment({&apos;id&apos;: patch_id}, None)
&gt; 
&gt; :(

I still think this fake attachment is sadness.  Will you buy me a pony if this code is still here in a month?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298518</commentid>
    <comment_count>5</comment_count>
      <attachid>71624</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-23 21:45:08 -0700</bug_when>
    <thetext>Comment on attachment 71624
Patch

Clearing flags on attachment: 71624

Committed r70409: &lt;http://trac.webkit.org/changeset/70409&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>298519</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-10-23 21:45:15 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>71624</attachid>
            <date>2010-10-22 23:52:54 -0700</date>
            <delta_ts>2010-10-23 21:45:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-48173-20101022235252.patch</filename>
            <type>text/plain</type>
            <size>7072</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAyNGIzMDBlOWMyNjZmYzdhMjRlMmY2ZjRiODlmODMyYzZkNTUzZWI2Li4yZWJkOGZk
Yjk2YTAxNWFkMjdlZTNlMDI4NTQzNzExZWE1ZWYwYzIwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsMjYgQEAK
IAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBFV1MgbmV2
ZXIgcmVtb3ZlcyBpbnZhbGlkIHBhdGNoIGlkcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDgxNzMKKworICAgICAgICBUaGlzIGlzIGp1c3Qgc3RpY2tp
bmcgYW5vdGhlciBmaW5nZXIgaW4gdGhlIGRhbS4KKyAgICAgICAgSG93ZXZlciB0aGlzIGFkZHMg
bW9yZSB1bml0IHRlc3Rpbmcgd2hpY2ggd2lsbCBoZWxwCisgICAgICAgIHVzIG1ha2Ugc3VyZSB3
ZSdyZSBhbHdheXMgcmVsZWFzaW5nIHBhdGNoZXMgb25jZSB3ZQorICAgICAgICByZWRlc2lnbiB0
aGUgcmVsZWFzZV9wYXRjaCBBUEkgYW5kIGNhbGwgdGhlc2UgZnJvbQorICAgICAgICBhIG1vcmUg
Y2VudHJhbCBwbGFjZS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWV1ZXMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1
ZXVlc191bml0dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rv
b2wucHk6CisgICAgICAgICAtIEFkZGVkIHRoZSBhYmlsaXR5IHRvIHJlcXVlc3QgaW52YWxpZCBw
YXRjaGVzLgorICAgICAgICAgICBMb2cgYSB3YXJuaW5nIG1lc3NhZ2UgdG8gbWFrZSBzdXJlIHdl
IGRvbid0IGV2ZXIgaGF2ZQorICAgICAgICAgICB0ZXN0cyB1c2UgaW52YWxpZCBwYXRjaCBmZXRj
aGVzIGJ5IG1pc3Rha2UuCisKKzIwMTAtMTAtMjIgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCiAgICAgICAgIEVX
UyBuZXZlciByZWxlYXNlcyBwYXRjaGVzIHdoaWNoIGZhaWwgdG8gYXBwbHkKICAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ4MTcxCiAKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5CmluZGV4
IGQ2ZWZlYjQ2NGMyZTIwYWM4MTg4N2MwM2YyOTgxZTAyMzk5YWI4NzkuLjU2MGNiMWQ3M2YyYTVk
YmE5ZjgxYWU5NTkwZDNjZDJmMGM0MGI2ZDUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMucHkKKysrIGIvV2ViS2l0VG9vbHMvU2Ny
aXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQpAQCAtMzgsNyArMzgsNyBAQCBm
cm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZQogZnJvbSBvcHRwYXJzZSBpbXBvcnQgbWFrZV9v
cHRpb24KIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCiAKLWZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQ29tbWl0dGVyVmFsaWRhdG9yCitmcm9tIHdlYmtpdHB5
LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IENvbW1pdHRlclZhbGlkYXRvciwgQXR0YWNobWVu
dAogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBwYXRo
X2Zvcl9sYXlvdXRfdGVzdCwgTGF5b3V0VGVzdFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9u
Lm5ldC5zdGF0dXNzZXJ2ZXIgaW1wb3J0IFN0YXR1c1NlcnZlcgogZnJvbSB3ZWJraXRweS5jb21t
b24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKQEAgLTIwMSw4ICsyMDEsMjAg
QEAgY2xhc3MgQWJzdHJhY3RQYXRjaFF1ZXVlKEFic3RyYWN0UXVldWUpOgogICAgIGRlZiBfdXBk
YXRlX3N0YXR1cyhzZWxmLCBtZXNzYWdlLCBwYXRjaD1Ob25lLCByZXN1bHRzX2ZpbGU9Tm9uZSk6
CiAgICAgICAgIHJldHVybiBzZWxmLl90b29sLnN0YXR1c19zZXJ2ZXIudXBkYXRlX3N0YXR1cyhz
ZWxmLm5hbWUsIG1lc3NhZ2UsIHBhdGNoLCByZXN1bHRzX2ZpbGUpCiAKLSAgICBkZWYgX2ZldGNo
X25leHRfd29ya19pdGVtKHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5zdGF0dXNf
c2VydmVyLm5leHRfd29ya19pdGVtKHNlbGYubmFtZSkKKyAgICBkZWYgX25leHRfcGF0Y2goc2Vs
Zik6CisgICAgICAgIHBhdGNoX2lkID0gc2VsZi5fdG9vbC5zdGF0dXNfc2VydmVyLm5leHRfd29y
a19pdGVtKHNlbGYubmFtZSkKKyAgICAgICAgaWYgbm90IHBhdGNoX2lkOgorICAgICAgICAgICAg
cmV0dXJuIE5vbmUKKyAgICAgICAgcGF0Y2ggPSBzZWxmLl90b29sLmJ1Z3MuZmV0Y2hfYXR0YWNo
bWVudChwYXRjaF9pZCkKKyAgICAgICAgaWYgbm90IHBhdGNoOgorICAgICAgICAgICAgIyBGSVhN
RTogVXNpbmcgYSBmYWtlIHBhdGNoIGJlY2F1c2UgcmVsZWFzZV93b3JrX2l0ZW0gaGFzIHRoZSB3
cm9uZyBBUEkuCisgICAgICAgICAgICAjIFdlIGFsc28gZG9uJ3QgcmVhbGx5IG5lZWQgdG8gcmVs
ZWFzZSB0aGUgbG9jayAoYWx0aG91Z2ggdGhhdCdzIGZpbmUpLAorICAgICAgICAgICAgIyBtb3N0
bHkgd2UganVzdCBuZWVkIHRvIHJlbW92ZSB0aGlzIGJvZ3VzIHBhdGNoIGZyb20gb3VyIHF1ZXVl
LgorICAgICAgICAgICAgIyBJZiBmb3Igc29tZSByZWFzb24gYnVnemlsbGEgaXMganVzdCBkb3du
LCB0aGVuIGl0IHdpbGwgYmUgcmUtZmVkIGxhdGVyLgorICAgICAgICAgICAgcGF0Y2ggPSBBdHRh
Y2htZW50KHsnaWQnOiBwYXRjaF9pZH0sIE5vbmUpCisgICAgICAgICAgICBzZWxmLl9yZWxlYXNl
X3dvcmtfaXRlbShwYXRjaCkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHJldHVy
biBwYXRjaAogCiAgICAgZGVmIF9yZWxlYXNlX3dvcmtfaXRlbShzZWxmLCBwYXRjaCk6CiAgICAg
ICAgIHNlbGYuX3Rvb2wuc3RhdHVzX3NlcnZlci5yZWxlYXNlX3dvcmtfaXRlbShzZWxmLm5hbWUs
IHBhdGNoKQpAQCAtMjM4LDEwICsyNTAsNyBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFBh
dGNoUXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlciwgQ29tbWl0UXVldWVUYXNrRAogICAg
ICAgICBzZWxmLmNvbW1pdHRlcl92YWxpZGF0b3IgPSBDb21taXR0ZXJWYWxpZGF0b3Ioc2VsZi5f
dG9vbC5idWdzKQogCiAgICAgZGVmIG5leHRfd29ya19pdGVtKHNlbGYpOgotICAgICAgICBwYXRj
aF9pZCA9IHNlbGYuX2ZldGNoX25leHRfd29ya19pdGVtKCkKLSAgICAgICAgaWYgbm90IHBhdGNo
X2lkOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wu
YnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoX2lkKQorICAgICAgICByZXR1cm4gc2VsZi5fbmV4
dF9wYXRjaCgpCiAKICAgICBkZWYgc2hvdWxkX3Byb2NlZWRfd2l0aF93b3JrX2l0ZW0oc2VsZiwg
cGF0Y2gpOgogICAgICAgICBwYXRjaF90ZXh0ID0gInJvbGxvdXQgcGF0Y2giIGlmIHBhdGNoLmlz
X3JvbGxvdXQoKSBlbHNlICJwYXRjaCIKQEAgLTM5NSwxMCArNDA0LDcgQEAgY2xhc3MgQWJzdHJh
Y3RSZXZpZXdRdWV1ZShBYnN0cmFjdFBhdGNoUXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxl
cik6CiAgICAgICAgIEFic3RyYWN0UGF0Y2hRdWV1ZS5iZWdpbl93b3JrX3F1ZXVlKHNlbGYpCiAK
ICAgICBkZWYgbmV4dF93b3JrX2l0ZW0oc2VsZik6Ci0gICAgICAgIHBhdGNoX2lkID0gc2VsZi5f
ZmV0Y2hfbmV4dF93b3JrX2l0ZW0oKQotICAgICAgICBpZiBub3QgcGF0Y2hfaWQ6Ci0gICAgICAg
ICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gc2VsZi5fdG9vbC5idWdzLmZldGNoX2F0
dGFjaG1lbnQocGF0Y2hfaWQpCisgICAgICAgIHJldHVybiBzZWxmLl9uZXh0X3BhdGNoKCkKIAog
ICAgIGRlZiBzaG91bGRfcHJvY2VlZF93aXRoX3dvcmtfaXRlbShzZWxmLCBwYXRjaCk6CiAgICAg
ICAgIHJhaXNlIE5vdEltcGxlbWVudGVkRXJyb3IoInN1YmNsYXNzZXMgbXVzdCBpbXBsZW1lbnQi
KQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3F1ZXVlc191bml0dGVzdC5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9j
b21tYW5kcy9xdWV1ZXNfdW5pdHRlc3QucHkKaW5kZXggZjBkMjIwZmE2NGU0OTBlZjU4MmMwODA2
OTE0ZTQ1YmRmOWYzNmU3Mi4uN2YyNDgwZWVmOTYxOGYwYWQzMjYwYWVlYTExMTc5ZGQ5YTk4MzZm
NSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L3F1ZXVlc191bml0dGVzdC5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rv
b2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CkBAIC0xMzksMTUgKzEzOSwxOSBAQCBNT0NL
OiBzdWJtaXRfdG9fZXdzOiAxMDMKIAogCiBjbGFzcyBBYnN0cmFjdFBhdGNoUXVldWVUZXN0KENv
bW1hbmRzVGVzdCk6Ci0gICAgZGVmIHRlc3RfZmV0Y2hfbmV4dF93b3JrX2l0ZW0oc2VsZik6Cisg
ICAgZGVmIHRlc3RfbmV4dF9wYXRjaChzZWxmKToKICAgICAgICAgcXVldWUgPSBBYnN0cmFjdFBh
dGNoUXVldWUoKQogICAgICAgICB0b29sID0gTW9ja1Rvb2woKQogICAgICAgICBxdWV1ZS5iaW5k
X3RvX3Rvb2wodG9vbCkKICAgICAgICAgcXVldWUuX29wdGlvbnMgPSBNb2NrKCkKICAgICAgICAg
cXVldWUuX29wdGlvbnMucG9ydCA9IE5vbmUKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocXVl
dWUuX2ZldGNoX25leHRfd29ya19pdGVtKCksIE5vbmUpCi0gICAgICAgIHRvb2wuc3RhdHVzX3Nl
cnZlciA9IE1vY2tTdGF0dXNTZXJ2ZXIod29ya19pdGVtcz1bMiwgMSwgM10pCi0gICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWxzKHF1ZXVlLl9mZXRjaF9uZXh0X3dvcmtfaXRlbSgpLCAyKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFscyhxdWV1ZS5fbmV4dF9wYXRjaCgpLCBOb25lKQorICAgICAgICB0
b29sLnN0YXR1c19zZXJ2ZXIgPSBNb2NrU3RhdHVzU2VydmVyKHdvcmtfaXRlbXM9WzIsIDE5N10p
CisgICAgICAgIGV4cGVjdGVkX3N0ZG91dCA9ICJNT0NLOiBmZXRjaF9hdHRhY2htZW50OiAyIGlz
IG5vdCBhIGtub3duIGF0dGFjaG1lbnQgaWRcbiIgICMgQSBtb2NrLW9ubHkgbWVzc2FnZSB0byBw
cmV2ZW50IHVzIGZyb20gbWFraW5nIG1pc3Rha2VzLgorICAgICAgICBleHBlY3RlZF9zdGRlcnIg
PSAiTU9DSzogcmVsZWFzZV93b3JrX2l0ZW06IE5vbmUgMlxuIgorICAgICAgICBwYXRjaF9pZCA9
IE91dHB1dENhcHR1cmUoKS5hc3NlcnRfb3V0cHV0cyhzZWxmLCBxdWV1ZS5fbmV4dF9wYXRjaCwg
W10sIGV4cGVjdGVkX3N0ZG91dD1leHBlY3RlZF9zdGRvdXQsIGV4cGVjdGVkX3N0ZGVycj1leHBl
Y3RlZF9zdGRlcnIpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKHBhdGNoX2lkLCBOb25lKSAg
IyAyIGlzIGFuIGludmFsaWQgcGF0Y2ggaWQKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocXVl
dWUuX25leHRfcGF0Y2goKS5pZCgpLCAxOTcpCiAKIAogY2xhc3MgTmVlZHNVcGRhdGVTZXF1ZW5j
ZShTdGVwU2VxdWVuY2UpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21v
Y2t0b29sLnB5CmluZGV4IDA5NzA5MzA4YjkzZTRmYTA1MDgxYWJhZDExZWVhZWVlY2FiODg4ODQu
LjA5M2JlYzI3NDM1OTY2NTE2N2QyZWM4ODc1NWIxOTk2MWQ0NjUwNGIgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysgYi9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTI5Miw4ICsyOTIsMTAg
QEAgY2xhc3MgTW9ja0J1Z3ppbGxhKE1vY2spOgogICAgICAgICBpZiBzZWxmLl9vdmVycmlkZV9w
YXRjaDoKICAgICAgICAgICAgIHJldHVybiBzZWxmLl9vdmVycmlkZV9wYXRjaAogCi0gICAgICAg
ICMgVGhpcyBjb3VsZCBiZSBjaGFuZ2VkIHRvIC5nZXQoKSBpZiB3ZSB3aXNoIHRvIGFsbG93IGZh
aWxlZCBsb29rdXBzLgotICAgICAgICBhdHRhY2htZW50X2RpY3Rpb25hcnkgPSBzZWxmLmF0dGFj
aG1lbnRfY2FjaGVbYXR0YWNobWVudF9pZF0KKyAgICAgICAgYXR0YWNobWVudF9kaWN0aW9uYXJ5
ID0gc2VsZi5hdHRhY2htZW50X2NhY2hlLmdldChhdHRhY2htZW50X2lkKQorICAgICAgICBpZiBu
b3QgYXR0YWNobWVudF9kaWN0aW9uYXJ5OgorICAgICAgICAgICAgcHJpbnQgIk1PQ0s6IGZldGNo
X2F0dGFjaG1lbnQ6ICVzIGlzIG5vdCBhIGtub3duIGF0dGFjaG1lbnQgaWQiICUgYXR0YWNobWVu
dF9pZAorICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgYnVnID0gc2VsZi5mZXRjaF9i
dWcoYXR0YWNobWVudF9kaWN0aW9uYXJ5WyJidWdfaWQiXSkKICAgICAgICAgZm9yIGF0dGFjaG1l
bnQgaW4gYnVnLmF0dGFjaG1lbnRzKGluY2x1ZGVfb2Jzb2xldGU9VHJ1ZSk6CiAgICAgICAgICAg
ICBpZiBhdHRhY2htZW50LmlkKCkgPT0gaW50KGF0dGFjaG1lbnRfaWQpOgpAQCAtNTUzLDcgKzU1
NSw3IEBAIGNsYXNzIE1vY2tTdGF0dXNTZXJ2ZXIob2JqZWN0KToKICAgICBkZWYgbmV4dF93b3Jr
X2l0ZW0oc2VsZiwgcXVldWVfbmFtZSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLl93b3JrX2l0ZW1z
OgogICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtfaXRl
bXNbMF0KKyAgICAgICAgcmV0dXJuIHNlbGYuX3dvcmtfaXRlbXMucG9wKDApCiAKICAgICBkZWYg
cmVsZWFzZV93b3JrX2l0ZW0oc2VsZiwgcXVldWVfbmFtZSwgcGF0Y2gpOgogICAgICAgICBsb2co
Ik1PQ0s6IHJlbGVhc2Vfd29ya19pdGVtOiAlcyAlcyIgJSAocXVldWVfbmFtZSwgcGF0Y2guaWQo
KSkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>