<?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>145584</bug_id>
          
          <creation_ts>2015-06-02 17:55:57 -0700</creation_ts>
          <short_desc>use multiprocessing in run-benchmark to launch web server</short_desc>
          <delta_ts>2015-06-05 02:56:00 -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>
          
          
          <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="Stephanie Lewis">slewis</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>glenn</cc>
    
    <cc>rniwa</cc>
    
    <cc>slewis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1098992</commentid>
    <comment_count>0</comment_count>
      <attachid>254129</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2015-06-02 17:55:57 -0700</bug_when>
    <thetext>Created attachment 254129
patch

Was debugging some hanging issues in run-benchmark and I ended up moving the separate web process to multiprocessing to help me debug.
Clean up some exception handling and style issues.
Wait for the server to be ready to serve pages before returning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1098993</commentid>
    <comment_count>1</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-06-02 17:59:05 -0700</bug_when>
    <thetext>Attachment 254129 did not pass style-queue:


ERROR: Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:71:  indentation is not a multiple of four  [pep8/E111] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:11:  No name &apos;web&apos; in module &apos;twisted&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:12:  No name &apos;web&apos; in module &apos;twisted&apos;  [pylint/E0611] [5]
ERROR: Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:13:  No name &apos;internet&apos; in module &apos;twisted&apos;  [pylint/E0611] [5]
ERROR: Tools/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 5 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099017</commentid>
    <comment_count>2</comment_count>
      <attachid>254129</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2015-06-02 19:28:10 -0700</bug_when>
    <thetext>Comment on attachment 254129
patch

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

&gt; Tools/ChangeLog:4
&gt; +

Missing bug URL.

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:35
&gt; +        except Exception as e:

Spell out exception or error.

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:65
&gt; +                        command = [&apos;/usr/sbin/lsof&apos;, &apos;-a&apos;, &apos;-iTCP&apos;, &apos;-sTCP:LISTEN&apos;, &apos;-p&apos;, str(self.server_process.pid)]
&gt; +                        output = subprocess.check_output(command)

Perhaps we don&apos;t really need a local variable `command` here?

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:66
&gt; +                        self.server_port = int(re.findall(&apos;TCP \*:(\d+) \(LISTEN\)&apos;, output)[0])

Why don&apos;t we just use re.search if we&apos;re grabbing the first result?

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:71
&gt; +                    except Exception as e:
&gt; +                         _log.info(&apos;Error: %s&apos; % e)

nit: spell out e.

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:76
&gt; +            except Exception as e:
&gt; +                sys.exit(&quot;Cannot listen to server, max tries exceeded: %s&quot; % e)

Ditto. Also, why don&apos;t we use _log.error and sys.exit separately as done elsewhere for consistency?

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:87
&gt; +        except Exception as e:
&gt; +            _log.info(&apos;Server not running, max tries exceeded: %s&apos; % e)

This code never runs unless _log.info or time.sleep blows up.
I think what you wanna do is to return immediately after subprocess.check_call.
And just error and sys.exit when we got out of the for loop without hitting that return.

&gt; Tools/Scripts/webkitpy/benchmark_runner/http_server_driver/simple_http_server_driver.py:121
&gt; +    def postResult(self, result):

Can we rename this to post_result for consistency if we&apos;re using PEP style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099048</commentid>
    <comment_count>3</comment_count>
      <attachid>254129</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-06-02 21:46:04 -0700</bug_when>
    <thetext>Comment on attachment 254129
patch

Please do not use multiprocessing. It is broken by design, and we were told that we simply should not use it (see e.g. &lt;rdar://problem/19851334&gt;).

The recommendation is to use either threading or subprocess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099052</commentid>
    <comment_count>4</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2015-06-02 21:55:32 -0700</bug_when>
    <thetext>I don&apos;t even have words.

I can move it onto a thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099786</commentid>
    <comment_count>5</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2015-06-05 02:56:00 -0700</bug_when>
    <thetext>Ended up undoing the multiprocessing changes and just keeping the extra error checks to make it more robust.

http://trac.webkit.org/changeset/185244</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254129</attachid>
            <date>2015-06-02 17:55:57 -0700</date>
            <delta_ts>2015-06-02 21:46:04 -0700</delta_ts>
            <desc>patch</desc>
            <filename>0003-Use-multiprocessing-to-launch-twisted-web-server.patch</filename>
            <type>text/plain</type>
            <size>11718</size>
            <attacher name="Stephanie Lewis">slewis</attacher>
            
              <data encoding="base64">RnJvbSA0MGJmMjhhOTRhYjVmMDkwMDkxMTQzN2ZhMTgxNmY4OTc4MTUzNDliIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTdGVwaGFuaWUgTGV3aXMgPHNsZXdpc0BhcHBsZS5jb20+CkRh
dGU6IFR1ZSwgMiBKdW4gMjAxNSAxNzo0NzowNiAtMDcwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBV
c2UgbXVsdGlwcm9jZXNzaW5nIHRvIGxhdW5jaCB0d2lzdGVkIHdlYiBzZXJ2ZXIuCgpSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KCkNsZWFuZWQgdXAgZXhjZXB0aW9uIGhhbmRsaW5nLgpUZXN0
IHNlcnZlciBpcyBhY3R1YWxseSBzZXJ2aW5nIHBhZ2VzIGJlZm9yZSByZXR1cm5pbmcuCkkgbW92
ZWQgdGhlIHNlcnZlciBwcm9jZXNzIG9udG8gbXVsdGlwcm9jZXNzaW5nIGFzIG9wcG9zZWQgdG8g
YSBzZWNvbmQgc2NyaXB0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnLgpDbGVhbiB1cCBzb21l
IHN0eWxlIGlzc3Vlcy4KCiogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBf
c2VydmVyX2RyaXZlci9odHRwX3NlcnZlci90d2lzdGVkX2h0dHBfc2VydmVyLnB5OiBSZW1vdmVk
LgogICAgTW92ZWQgdG8gYSBtdWx0aXByb2Nlc3NpbmcgbW9kZWwKKiBTY3JpcHRzL3dlYmtpdHB5
L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL3NpbXBsZV9odHRwX3NlcnZlcl9k
cml2ZXIucHk6CihTaW1wbGVIVFRQU2VydmVyRHJpdmVyLl9faW5pdF9fKToKKFNpbXBsZUhUVFBT
ZXJ2ZXJEcml2ZXIuc2VydmUpOiBtb3ZlIHRvIGEgbXVsdGlwcm9jZXNzaW5nIG1vZHVsZSwgY2hl
Y2sgb3V0cHV0LCB3YWl0IGZvciBwYWdlcyB0byBzZXJ2ZQooU2ltcGxlSFRUUFNlcnZlckRyaXZl
ci5iYXNlVXJsKToKKFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIuZmV0Y2hSZXN1bHQpOiB1c2UgbXVs
dGlwcm9jZXNzaW5nIHF1ZXVlCihTaW1wbGVIVFRQU2VydmVyRHJpdmVyLmtpbGxTZXJ2ZXIpOgoo
U2ltcGxlSFRUUFNlcnZlckRyaXZlci5nZXRSZXR1cm5Db2RlKToKKFNlcnZlclByb2Nlc3MpOiBD
cmVhdGUgYSBwcm9jZXNzIHRvIHJ1biBzZXJ2ZXIKKFNlcnZlclByb2Nlc3MuX19pbml0X18pOgoo
U2VydmVyUHJvY2Vzcy5ydW4pOgooU2VydmVyUHJvY2Vzcy5wb3N0UmVzdWx0KToKKFNlcnZlckNv
bnRyb2wpOiBUd2lzdGVkIHdlYiBzZXJ2ZXIKKFNlcnZlckNvbnRyb2wuX19pbml0X18pOgooU2Vy
dmVyQ29udHJvbC5yZW5kZXJfR0VUKToKKFNlcnZlckNvbnRyb2wucmVuZGVyX1BPU1QpOgotLS0K
IFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI5
ICsrKysrKwogLi4uL2h0dHBfc2VydmVyL3R3aXN0ZWRfaHR0cF9zZXJ2ZXIucHkgICAgICAgICAg
ICAgfCAgMzIgLS0tLS0tCiAuLi4vc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weSAgICAgICAg
ICAgICAgICAgICB8IDExNCArKysrKysrKysrKysrKystLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwg
MTEyIGluc2VydGlvbnMoKyksIDYzIGRlbGV0aW9ucygtKQogZGVsZXRlIG1vZGUgMTAwNjQ0IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIv
aHR0cF9zZXJ2ZXIvdHdpc3RlZF9odHRwX3NlcnZlci5weQoKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NzI2NWMxLi45YTQzMDUxIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMzQg
QEAKIDIwMTUtMDYtMDIgIFN0ZXBoYW5pZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CiAKKyAg
ICAgICAgVXNlIG11bHRpcHJvY2Vzc2luZyB0byBsYXVuY2ggdHdpc3RlZCB3ZWIgc2VydmVyLgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENsZWFuZWQg
dXAgZXhjZXB0aW9uIGhhbmRsaW5nLgorICAgICAgICBUZXN0IHNlcnZlciBpcyBhY3R1YWxseSBz
ZXJ2aW5nIHBhZ2VzIGJlZm9yZSByZXR1cm5pbmcuCisgICAgICAgIEkgbW92ZWQgdGhlIHNlcnZl
ciBwcm9jZXNzIG9udG8gbXVsdGlwcm9jZXNzaW5nIGFzIG9wcG9zZWQgdG8gYSBzZWNvbmQgc2Ny
aXB0IHRvIG1ha2UgaXQgZWFzaWVyIHRvIGRlYnVnLgorICAgICAgICBDbGVhbiB1cCBzb21lIHN0
eWxlIGlzc3Vlcy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5l
ci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXIvdHdpc3RlZF9odHRwX3NlcnZlci5weTog
UmVtb3ZlZC4KKyAgICAgICAgICAgIE1vdmVkIHRvIGEgbXVsdGlwcm9jZXNzaW5nIG1vZGVsCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2Ry
aXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5OgorICAgICAgICAoU2ltcGxlSFRUUFNl
cnZlckRyaXZlci5fX2luaXRfXyk6CisgICAgICAgIChTaW1wbGVIVFRQU2VydmVyRHJpdmVyLnNl
cnZlKTogbW92ZSB0byBhIG11bHRpcHJvY2Vzc2luZyBtb2R1bGUsIGNoZWNrIG91dHB1dCwgd2Fp
dCBmb3IgcGFnZXMgdG8gc2VydmUKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIuYmFz
ZVVybCk6IAorICAgICAgICAoU2ltcGxlSFRUUFNlcnZlckRyaXZlci5mZXRjaFJlc3VsdCk6IHVz
ZSBtdWx0aXByb2Nlc3NpbmcgcXVldWUKKyAgICAgICAgKFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIu
a2lsbFNlcnZlcik6CisgICAgICAgIChTaW1wbGVIVFRQU2VydmVyRHJpdmVyLmdldFJldHVybkNv
ZGUpOgorICAgICAgICAoU2VydmVyUHJvY2Vzcyk6IENyZWF0ZSBhIHByb2Nlc3MgdG8gcnVuIHNl
cnZlcgorICAgICAgICAoU2VydmVyUHJvY2Vzcy5fX2luaXRfXyk6CisgICAgICAgIChTZXJ2ZXJQ
cm9jZXNzLnJ1bik6CisgICAgICAgIChTZXJ2ZXJQcm9jZXNzLnBvc3RSZXN1bHQpOgorICAgICAg
ICAoU2VydmVyQ29udHJvbCk6IFR3aXN0ZWQgd2ViIHNlcnZlcgorICAgICAgICAoU2VydmVyQ29u
dHJvbC5fX2luaXRfXyk6CisgICAgICAgIChTZXJ2ZXJDb250cm9sLnJlbmRlcl9HRVQpOgorICAg
ICAgICAoU2VydmVyQ29udHJvbC5yZW5kZXJfUE9TVCk6CisKKzIwMTUtMDYtMDIgIFN0ZXBoYW5p
ZSBMZXdpcyAgPHNsZXdpc0BhcHBsZS5jb20+CisKICAgICAgICAgQWRkIGVycm9ycyB0byBydW4t
YmVuY2htYXJrIGV4Y2VwdGlvbiBoYW5kbGluZy4KIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJr
X3J1bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvaHR0cF9zZXJ2ZXIvdHdpc3RlZF9odHRwX3NlcnZl
ci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1bm5lci9odHRwX3NlcnZl
cl9kcml2ZXIvaHR0cF9zZXJ2ZXIvdHdpc3RlZF9odHRwX3NlcnZlci5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggOTUzYzA0ZC4uMDAwMDAwMAotLS0gYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJpdmVyL2h0dHBfc2VydmVyL3R3
aXN0ZWRfaHR0cF9zZXJ2ZXIucHkKKysrIC9kZXYvbnVsbApAQCAtMSwzMiArMCwwIEBACi0jIS91
c3IvYmluL2VudiBweXRob24KLQotZnJvbSB0d2lzdGVkLndlYiBpbXBvcnQgc3RhdGljLCBzZXJ2
ZXIKLWZyb20gdHdpc3RlZC53ZWIucmVzb3VyY2UgaW1wb3J0IFJlc291cmNlCi1mcm9tIHR3aXN0
ZWQuaW50ZXJuZXQgaW1wb3J0IHJlYWN0b3IKLWltcG9ydCBhcmdwYXJzZQotaW1wb3J0IHN5cwot
Ci0KLWNsYXNzIFNlcnZlckNvbnRyb2woUmVzb3VyY2UpOgotICAgIGlzTGVhZiA9IFRydWUKLQot
ICAgIGRlZiByZW5kZXJfR0VUKHNlbGYsIHJlcXVlc3QpOgotICAgICAgICByZWFjdG9yLnN0b3Ao
KQotICAgICAgICByZXR1cm4gIiIKLQotICAgIGRlZiByZW5kZXJfUE9TVChzZWxmLCByZXF1ZXN0
KToKLSAgICAgICAgc3lzLnN0ZG91dC53cml0ZShyZXF1ZXN0LmNvbnRlbnQuZ2V0dmFsdWUoKSkK
LSAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCi0gICAgICAgIHJldHVybiAnT0snCi0KLQotaWYg
X19uYW1lX18gPT0gJ19fbWFpbl9fJzoKLSAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBh
cnNlcihkZXNjcmlwdGlvbj0ncHl0aG9uIFR3aXN0ZWRIVFRQU2VydmVyLnB5IHdlYlJvb3QnKQot
ICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ3dlYlJvb3QnKQotICAgIGFyZ3MgPSBwYXJzZXIucGFy
c2VfYXJncygpCi0gICAgd2ViUm9vdCA9IHN0YXRpYy5GaWxlKGFyZ3Mud2ViUm9vdCkKLSAgICBz
ZXJ2ZXJDb250cm9sID0gU2VydmVyQ29udHJvbCgpCi0gICAgd2ViUm9vdC5wdXRDaGlsZCgnc2h1
dGRvd24nLCBzZXJ2ZXJDb250cm9sKQotICAgIHdlYlJvb3QucHV0Q2hpbGQoJ3JlcG9ydCcsIHNl
cnZlckNvbnRyb2wpCi0gICAgcmVhY3Rvci5saXN0ZW5UQ1AoMCwgc2VydmVyLlNpdGUod2ViUm9v
dCkpCi0gICAgcmVhY3Rvci5ydW4oKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9iZW5jaG1hcmtfcnVubmVyL2h0dHBfc2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJf
ZHJpdmVyLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9iZW5jaG1hcmtfcnVubmVyL2h0dHBf
c2VydmVyX2RyaXZlci9zaW1wbGVfaHR0cF9zZXJ2ZXJfZHJpdmVyLnB5CmluZGV4IGI2NmI0ZjYu
LjhlYjIzODIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvYmVuY2htYXJrX3J1
bm5lci9odHRwX3NlcnZlcl9kcml2ZXIvc2ltcGxlX2h0dHBfc2VydmVyX2RyaXZlci5weQorKysg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2JlbmNobWFya19ydW5uZXIvaHR0cF9zZXJ2ZXJfZHJp
dmVyL3NpbXBsZV9odHRwX3NlcnZlcl9kcml2ZXIucHkKQEAgLTEsMTQgKzEsMjAgQEAKICMhL3Vz
ci9iaW4vZW52IHB5dGhvbgogCiBpbXBvcnQgbG9nZ2luZwotaW1wb3J0IG9zCitpbXBvcnQgbXVs
dGlwcm9jZXNzaW5nCiBpbXBvcnQgcmUKIGltcG9ydCBzb2NrZXQKIGltcG9ydCBzdWJwcm9jZXNz
CitpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQogCitmcm9tIHR3aXN0ZWQud2ViIGltcG9ydCBzdGF0
aWMsIHNlcnZlcgorZnJvbSB0d2lzdGVkLndlYi5yZXNvdXJjZSBpbXBvcnQgUmVzb3VyY2UKK2Zy
b20gdHdpc3RlZC5pbnRlcm5ldCBpbXBvcnQgcmVhY3RvcgorCiBmcm9tIGh0dHBfc2VydmVyX2Ry
aXZlciBpbXBvcnQgSFRUUFNlcnZlckRyaXZlcgogCitmcm9tIG11bHRpcHJvY2Vzc2luZyBpbXBv
cnQgUXVldWUsIEV2ZW50CiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25hbWVfXykKIApA
QCAtMTksMjMgKzI1LDIyIEBAIGNsYXNzIFNpbXBsZUhUVFBTZXJ2ZXJEcml2ZXIoSFRUUFNlcnZl
ckRyaXZlcik6CiAgICAgIiIiCiAKICAgICBkZWYgX19pbml0X18oc2VsZik6Ci0gICAgICAgIHNl
bGYuc2VydmVyUHJvY2VzcyA9IE5vbmUKLSAgICAgICAgc2VsZi5zZXJ2ZXJQb3J0ID0gMAorICAg
ICAgICBzZWxmLnNlcnZlcl9wcm9jZXNzID0gTm9uZQorICAgICAgICBzZWxmLnNlcnZlcl9wb3J0
ID0gMAogICAgICAgICAjIEZJWE1FOiBUaGlzIG1heSBub3QgYmUgcmVsaWFibGUuCiAgICAgICAg
IF9sb2cuaW5mbygnRmluZGluZyB0aGUgSVAgYWRkcmVzcyBvZiBjdXJyZW50IG1hY2hpbmUnKQog
ICAgICAgICB0cnk6CiAgICAgICAgICAgICBzZWxmLmlwID0gW2lwIGZvciBpcCBpbiBzb2NrZXQu
Z2V0aG9zdGJ5bmFtZV9leChzb2NrZXQuZ2V0aG9zdG5hbWUoKSlbMl0gaWYgbm90IGlwLnN0YXJ0
c3dpdGgoIjEyNy4iKV1bMF0KICAgICAgICAgICAgIF9sb2cuaW5mbygnSVAgb2YgY3VycmVudCBt
YWNoaW5lIGlzOiAlcycgJSBzZWxmLmlwKQotICAgICAgICBleGNlcHQ6Ci0gICAgICAgICAgICBf
bG9nLmVycm9yKCdDYW5ub3QgZ2V0IHRoZSBpcCBhZGRyZXNzIG9mIGN1cnJlbnQgbWFjaGluZScp
CisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgIF9sb2cuZXJyb3Io
J0Nhbm5vdCBnZXQgdGhlIGlwIGFkZHJlc3Mgb2YgY3VycmVudCBtYWNoaW5lIC0gRXJyb3I6ICVz
JyAlIGUpCiAgICAgICAgICAgICByYWlzZQogCi0gICAgZGVmIHNlcnZlKHNlbGYsIHdlYlJvb3Qp
OgotICAgICAgICBvbGRXb3JraW5nRGlyZWN0b3J5ID0gb3MuZ2V0Y3dkKCkKLSAgICAgICAgb3Mu
Y2hkaXIob3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpKQotICAgICAg
ICBfbG9nLmluZm8oJ0xhdW5jaGluZyBhbiBodHRwIHNlcnZlcicpCi0gICAgICAgIHNlbGYuc2Vy
dmVyUHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oWycvdXNyL2Jpbi9weXRob24nLCAnaHR0cF9z
ZXJ2ZXIvdHdpc3RlZF9odHRwX3NlcnZlci5weScsIHdlYlJvb3RdLCBzdGRpbj1zdWJwcm9jZXNz
LlBJUEUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNzLlBJUEUpCi0g
ICAgICAgIG9zLmNoZGlyKG9sZFdvcmtpbmdEaXJlY3RvcnkpCisgICAgZGVmIHNlcnZlKHNlbGYs
IHdlYl9yb290KToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfcXVldWUgPSBRdWV1ZSgpCisgICAgICAg
IHNlbGYuc2VydmVyX3Byb2Nlc3MgPSBTZXJ2ZXJQcm9jZXNzKHdlYl9yb290LCBzZWxmLnNlcnZl
cl9xdWV1ZSkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfcHJvY2Vzcy5zdGFydCgpCisKICAgICAgICAg
bWF4QXR0ZW1wdCA9IDUKICAgICAgICAgaW50ZXJ2YWwgPSAwLjUKICAgICAgICAgX2xvZy5pbmZv
KCdTdGFydCB0byBmZXRjaGluZyB0aGUgcG9ydCBudW1iZXIgb2YgdGhlIGh0dHAgc2VydmVyJykK
QEAgLTQzLDkgKzQ4LDkgQEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVy
RHJpdmVyKToKICAgICAgICAgICAgIGltcG9ydCBwc3V0aWwKICAgICAgICAgICAgIGZvciBhdHRl
bXB0IGluIHhyYW5nZShtYXhBdHRlbXB0KToKICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgICAgIHNlbGYuc2VydmVyUG9ydCA9IHBzdXRpbC5Qcm9jZXNzKHNlbGYuc2VydmVy
UHJvY2Vzcy5waWQpLmNvbm5lY3Rpb25zKClbMF1bM11bMV0KLSAgICAgICAgICAgICAgICAgICAg
aWYgc2VsZi5zZXJ2ZXJQb3J0OgotICAgICAgICAgICAgICAgICAgICAgICAgX2xvZy5pbmZvKCdI
VFRQIFNlcnZlciBpcyBzZXJ2aW5nIGF0IHBvcnQ6ICVkJywgc2VsZi5zZXJ2ZXJQb3J0KQorICAg
ICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9wb3J0ID0gcHN1dGlsLlByb2Nlc3Moc2VsZi5z
ZXJ2ZXJfcHJvY2Vzcy5waWQpLmNvbm5lY3Rpb25zKClbMF1bM11bMV0KKyAgICAgICAgICAgICAg
ICAgICAgaWYgc2VsZi5zZXJ2ZXJfcG9ydDoKKyAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cu
aW5mbygnSFRUUCBTZXJ2ZXIgaXMgc2VydmluZyBhdCBwb3J0OiAlZCcsIHNlbGYuc2VydmVyX3Bv
cnQpCiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhawogICAgICAgICAgICAgICAgIGV4Y2Vw
dCBJbmRleEVycm9yOgogICAgICAgICAgICAgICAgICAgICBwYXNzCkBAIC01NiwzMyArNjEsODAg
QEAgY2xhc3MgU2ltcGxlSFRUUFNlcnZlckRyaXZlcihIVFRQU2VydmVyRHJpdmVyKToKICAgICAg
ICAgICAgIHRyeToKICAgICAgICAgICAgICAgICBmb3IgYXR0ZW1wdCBpbiB4cmFuZ2UobWF4QXR0
ZW1wdCk6CiAgICAgICAgICAgICAgICAgICAgIHRyeToKLSAgICAgICAgICAgICAgICAgICAgICAg
IHAgPSBzdWJwcm9jZXNzLlBvcGVuKCcgJy5qb2luKFsnL3Vzci9zYmluL2xzb2YnLCAnLWEnLCAn
LWlUQ1AnLCAnLXNUQ1A6TElTVEVOJywgJy1wJywgc3RyKHNlbGYuc2VydmVyUHJvY2Vzcy5waWQp
XSksIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsIHN0ZGVycj1zdWJwcm9jZXNz
LlBJUEUpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlclBvcnQgPSBpbnQocmUu
ZmluZGFsbCgnVENQIFwqOihcZCspIFwoTElTVEVOXCknLCBwLmNvbW11bmljYXRlKClbMF0pWzBd
KQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5zZXJ2ZXJQb3J0OgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygnSFRUUCBTZXJ2ZXIgaXMgc2VydmluZyBhdCBw
b3J0OiAlZCcsIHNlbGYuc2VydmVyUG9ydCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1h
bmQgPSBbJy91c3Ivc2Jpbi9sc29mJywgJy1hJywgJy1pVENQJywgJy1zVENQOkxJU1RFTicsICct
cCcsIHN0cihzZWxmLnNlcnZlcl9wcm9jZXNzLnBpZCldCisgICAgICAgICAgICAgICAgICAgICAg
ICBvdXRwdXQgPSBzdWJwcm9jZXNzLmNoZWNrX291dHB1dChjb21tYW5kKQorICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfcG9ydCA9IGludChyZS5maW5kYWxsKCdUQ1AgXCo6KFxk
KykgXChMSVNURU5cKScsIG91dHB1dClbMF0pCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBz
ZWxmLnNlcnZlcl9wb3J0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9sb2cuaW5mbygn
SFRUUCBTZXJ2ZXIgaXMgc2VydmluZyBhdCBwb3J0OiAlZCcsIHNlbGYuc2VydmVyX3BvcnQpCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgICAgICAgICAgIyBS
YWlzaW5nIGV4Y2VwdGlvbiBtZWFucyB0aGUgc2VydmVyIGlzIG5vdCByZWFkeSB0byBzZXJ2ZXIs
IHRyeSBsYXRlcgotICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKLSAgICAg
ICAgICAgICAgICAgICAgICAgIHBhc3MKLSAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEluZGV4
RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgICAg
IGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgICAgICBfbG9nLmlu
Zm8oJ0Vycm9yOiAlcycgJSBlKQogICAgICAgICAgICAgICAgICAgICBfbG9nLmluZm8oJ1NlcnZl
ciBwb3J0IGlzIG5vdCBmb3VuZCB0aGlzIHRpbWUsIHJldHJ5IGFmdGVyICVmIHNlY29uZHMnICUg
aW50ZXJ2YWwpCiAgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoaW50ZXJ2YWwpCiAgICAg
ICAgICAgICAgICAgICAgIGludGVydmFsICo9IDIKLSAgICAgICAgICAgIGV4Y2VwdDoKLSAgICAg
ICAgICAgICAgICByYWlzZSBFeGNlcHRpb24oIlNlcnZlciBtYXkgbm90IGJlIHNlcnZpbmciKQor
ICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHN5cy5l
eGl0KCJDYW5ub3QgbGlzdGVuIHRvIHNlcnZlciwgbWF4IHRyaWVzIGV4Y2VlZGVkOiAlcyIgJSBl
KQorCisgICAgICAgICMgV2FpdCBmb3Igc2VydmVyIHRvIGJlIHVwIGNvbXBsZXRlbHkgYmVmb3Jl
IGV4aXRpbmcKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZm9yIGF0dGVtcHQgaW4geHJhbmdl
KG1heEF0dGVtcHQpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAg
c3VicHJvY2Vzcy5jaGVja19jYWxsKFsiY3VybCIsICItLXNpbGVudCIsICItLWhlYWQiLCAiLS1m
YWlsIiwgIi0tb3V0cHV0IiwgIi9kZXYvbnVsbCIsIHNlbGYuYmFzZVVybCgpXSkKKyAgICAgICAg
ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIF9sb2cu
aW5mbygnU2VydmVyIG5vdCBydW5uaW5nIHlldDogJXMnICUgZSkKKyAgICAgICAgICAgICAgICAg
ICAgdGltZS5zbGVlcChpbnRlcnZhbCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgor
ICAgICAgICAgICAgX2xvZy5pbmZvKCdTZXJ2ZXIgbm90IHJ1bm5pbmcsIG1heCB0cmllcyBleGNl
ZWRlZDogJXMnICUgZSkKKwogCiAgICAgZGVmIGJhc2VVcmwoc2VsZik6Ci0gICAgICAgIHJldHVy
biAiaHR0cDovLyVzOiVkIiAlIChzZWxmLmlwLCBzZWxmLnNlcnZlclBvcnQpCisgICAgICAgIHJl
dHVybiAiaHR0cDovLyVzOiVkIiAlIChzZWxmLmlwLCBzZWxmLnNlcnZlcl9wb3J0KQogCiAgICAg
ZGVmIGZldGNoUmVzdWx0KHNlbGYpOgotICAgICAgICByZXR1cm4gc2VsZi5zZXJ2ZXJQcm9jZXNz
LmNvbW11bmljYXRlKClbMF0KKyAgICAgICAgcmVzdWx0ID0gc2VsZi5zZXJ2ZXJfcXVldWUuZ2V0
KCkKKyAgICAgICAgc2VsZi5raWxsU2VydmVyKCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAogCiAg
ICAgZGVmIGtpbGxTZXJ2ZXIoc2VsZik6CiAgICAgICAgIHRyeToKLSAgICAgICAgICAgIHNlbGYu
c2VydmVyUHJvY2Vzcy50ZXJtaW5hdGUoKQotICAgICAgICBleGNlcHQgT1NFcnJvcjoKLSAgICAg
ICAgICAgIF9sb2cuaW5mbygnSW52YWxpZCBwaWQsIHNlcnZlciBtYXkgZXhpdCBwcm9wZXJseScp
CisgICAgICAgICAgICBzZWxmLnNlcnZlcl9wcm9jZXNzLnRlcm1pbmF0ZSgpCisgICAgICAgIGV4
Y2VwdCBPU0Vycm9yIGFzIGU6CisgICAgICAgICAgICBfbG9nLmluZm8oJ0Vycm9yIHRlcm1pbmF0
aW5nIHNlcnZlciBwcm9jZXNzOiAlcycsIGUpCiAKICAgICBkZWYgZ2V0UmV0dXJuQ29kZShzZWxm
KToKLSAgICAgICAgcmV0dXJuIHNlbGYuc2VydmVyUHJvY2Vzcy5yZXR1cm5jb2RlCisgICAgICAg
IHJldHVybiBzZWxmLnNlcnZlcl9wcm9jZXNzLmV4aXRjb2RlCisKKworY2xhc3MgU2VydmVyUHJv
Y2VzcyhtdWx0aXByb2Nlc3NpbmcuUHJvY2Vzcyk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHdl
Yl9yb290LCBxdWV1ZSk6CisgICAgICAgIHNlbGYud2ViX3Jvb3QgPSBzdGF0aWMuRmlsZSh3ZWJf
cm9vdCkKKyAgICAgICAgc2VsZi5zZXJ2ZXJfcXVldWUgPSBxdWV1ZQorICAgICAgICBtdWx0aXBy
b2Nlc3NpbmcuUHJvY2Vzcy5fX2luaXRfXyhzZWxmKQorCisgICAgZGVmIHJ1bihzZWxmKToKKyAg
ICAgICAgc2VsZi5zZXJ2ZXJfY29udHJvbCA9IFNlcnZlckNvbnRyb2woc2VsZikKKyAgICAgICAg
c2VsZi53ZWJfcm9vdC5wdXRDaGlsZCgnc2h1dGRvd24nLCBzZWxmLnNlcnZlcl9jb250cm9sKQor
ICAgICAgICBzZWxmLndlYl9yb290LnB1dENoaWxkKCdyZXBvcnQnLCBzZWxmLnNlcnZlcl9jb250
cm9sKQorICAgICAgICByZWFjdG9yLmxpc3RlblRDUCgwLCBzZXJ2ZXIuU2l0ZShzZWxmLndlYl9y
b290KSkKKyAgICAgICAgcmVhY3Rvci5ydW4oKQorCisgICAgZGVmIHBvc3RSZXN1bHQoc2VsZiwg
cmVzdWx0KToKKyAgICAgICAgc2VsZi5zZXJ2ZXJfcXVldWUucHV0KHJlc3VsdCkKKworCitjbGFz
cyBTZXJ2ZXJDb250cm9sKFJlc291cmNlKToKKyAgICBpc0xlYWYgPSBUcnVlCisKKyAgICBkZWYg
X19pbml0X18oc2VsZiwgY29udHJvbGxlcik6CisgICAgICAgIFJlc291cmNlLl9faW5pdF9fKHNl
bGYpCisgICAgICAgIHNlbGYuY29udHJvbGxlciA9IGNvbnRyb2xsZXIKKworICAgIGRlZiByZW5k
ZXJfR0VUKHNlbGYsIHJlcXVlc3QpOgorICAgICAgICBfbG9nLmluZm8oIlNlcnZpbmcgcmVxdWVz
dCAlcyIgJSByZXF1ZXN0KQorICAgICAgICByZWFjdG9yLnN0b3AoKQorICAgICAgICByZXR1cm4g
IiIKKworICAgIGRlZiByZW5kZXJfUE9TVChzZWxmLCByZXF1ZXN0KToKKyAgICAgICAgX2xvZy5p
bmZvKCJTZXJ2aW5nIHJlcXVlc3QgJXMiICUgcmVxdWVzdCkKKyAgICAgICAgc2VsZi5jb250cm9s
bGVyLnBvc3RSZXN1bHQocmVxdWVzdC5jb250ZW50LmdldHZhbHVlKCkpCisgICAgICAgIHJldHVy
biAnT0snCi0tIAoyLjMuNCAoQXBwbGUgR2l0LTU2KQoK
</data>
<flag name="review"
          id="279110"
          type_id="1"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>