<?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>187547</bug_id>
          
          <creation_ts>2018-07-10 22:14:16 -0700</creation_ts>
          <short_desc>[WinCairo] run-api-tests is timing out for almost all test cases</short_desc>
          <delta_ts>2018-07-17 03:14:43 -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 Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>187581</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Ross Kirsling">ross.kirsling</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>stephan.szabo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1441098</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-10 22:14:16 -0700</bug_when>
    <thetext>[WinCairo] run-api-tests is failing for almost all test cases

https://build.webkit.org/builders/WinCairo%2064-bit%20WKL%20Release%20%28Tests%29/builds/551

(...)
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_list_tests&apos;]
&gt; &quot;C:\WebKit-BuildWorker\wincairo-wkl-release-tests\build\WebKitBuild\Release\bin64\TestWTF.exe --gtest_list_tests&quot; took 0.10s
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWebCore.exe&apos;, &apos;--gtest_list_tests&apos;]
&gt; &quot;C:\WebKit-BuildWorker\wincairo-wkl-release-tests\build\WebKitBuild\Release\bin64\TestWebCore.exe --gtest_list_tests&quot; took 0.12s
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWebKitLegacy.exe&apos;, &apos;--gtest_list_tests&apos;]
&gt; &quot;C:\WebKit-BuildWorker\wincairo-wkl-release-tests\build\WebKitBuild\Release\bin64\TestWebKitLegacy.exe --gtest_list_tests&quot; took 0.09s
&gt; Found 860 tests
&gt; Running tests
&gt; Sharding tests ...
&gt; worker/0 starting
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.DeletedAddressOfOperator&apos;]
&gt; TestWTF.WTF_HashMap.DeletedAddressOfOperator Timeout
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.DoubleHashCollisions&apos;]
&gt; TestWTF.WTF_HashMap.DoubleHashCollisions Timeout
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.EfficientGetter&apos;]
&gt; TestWTF.WTF_HashMap.EfficientGetter Timeout
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.Ensure&apos;]
&gt; TestWTF.WTF_HashMap.Ensure Timeout
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.Ensure_LambdasCapturingByReference&apos;]
&gt; TestWTF.WTF_HashMap.Ensure_LambdasCapturingByReference Timeout
&gt; Looking at [u&apos;C:\\WebKit-BuildWorker\\wincairo-wkl-release-tests\\build\\WebKitBuild\\Release\\bin64\\TestWTF.exe&apos;, &apos;--gtest_filter=WTF_HashMap.Ensure_MoveOnlyValues&apos;]
&gt; TestWTF.WTF_HashMap.Ensure_MoveOnlyValues Passed
(...)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441101</commentid>
    <comment_count>1</comment_count>
      <attachid>344751</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-10 22:25:28 -0700</bug_when>
    <thetext>Created attachment 344751
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441125</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-11 00:59:12 -0700</bug_when>
    <thetext>It seems that ServerProcess is designed for interactive commands which basically never exits.
https://trac.webkit.org/browser/webkit/trunk/Tools/Scripts/webkitpy/port/server_process.py

But, TestWebKitAPI is not an interactive command, and it exits as soon as it finishes.

I think the reason webkitpy/api_tests/runner.py is using ServerProcess is non-blocking read for timeout.

&apos;subprocess&apos; module of Python 3 has timeout.
https://docs.python.org/3.7/library/subprocess.html

But, unfortunately, Python 2 doesn&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441444</commentid>
    <comment_count>3</comment_count>
      <attachid>344835</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-12 01:12:06 -0700</bug_when>
    <thetext>Created attachment 344835
WIP patch

This WIP patch introduces new test failures.
PeekNamedPipe fails because MockFile returns invalid file descriptors.
Umm, :-(

&gt; C:\webkit&gt;python Tools\Scripts\test-webkitpy -v webkitpy.port.server_process_unittest
&gt; Skipping lldb_webkit tests; could not find path to lldb.py &apos;&apos;.
&gt; Skipping QueueStatusServer tests; the Google AppEngine Python SDK is not installed.
&gt; Suppressing most webkitpy logging while running unit tests.
&gt; [1/6] webkitpy.port.server_process_unittest.TestServerProcess.test_basic passed
&gt; [2/6] webkitpy.port.server_process_unittest.TestServerProcess.test_broken_pipe erred:
&gt;   Traceback (most recent call last):
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process_unittest.py&quot;, line 207, in test_broken_pipe
&gt;       server_process.write(&quot;should break&quot;)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 170, in write
&gt;       self.stop(0.0)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 372, in stop
&gt;       return self._wait_for_stop(timeout_secs)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 392, in _wait_for_stop
&gt;       self._wait_for_data_and_update_buffers_using_win32_apis(now)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 301, in _wait_for_data_and_update_buffers_using_win32_apis
&gt;       output = self._non_blocking_read_win32(out_fh)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 315, in _non_blocking_read_win32
&gt;       _, avail, _ = win32pipe.PeekNamedPipe(handle, 0)
&gt;   error: (1, &apos;PeekNamedPipe&apos;, &apos;????????????????&apos;)
&gt; 
&gt; [3/6] webkitpy.port.server_process_unittest.TestServerProcess.test_cleanup erred:
&gt;   Traceback (most recent call last):
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process_unittest.py&quot;, line 197, in test_cleanup
&gt;       server_process.stop()
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 372, in stop
&gt;       return self._wait_for_stop(timeout_secs)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 392, in _wait_for_stop
&gt;       self._wait_for_data_and_update_buffers_using_win32_apis(now)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 301, in _wait_for_data_and_update_buffers_using_win32_apis
&gt;       output = self._non_blocking_read_win32(out_fh)
&gt;     File &quot;C:\webkit\Tools\Scripts\webkitpy\port\server_process.py&quot;, line 315, in _non_blocking_read_win32
&gt;       _, avail, _ = win32pipe.PeekNamedPipe(handle, 0)
&gt;   error: (1, &apos;PeekNamedPipe&apos;, &apos;????????????????&apos;)
&gt; 
&gt; [4/6] webkitpy.port.server_process_unittest.TestServerProcess.test_process_crashing passed
&gt; [5/6] webkitpy.port.server_process_unittest.TestServerProcess.test_process_crashing_no_data passed
&gt; [6/6] webkitpy.port.server_process_unittest.TestServerProcess.test_read_after_process_exits passed
&gt; Ran 6 tests in 0.750s
&gt; FAILED (failures=0, errors=2)
&gt; 
&gt; C:\webkit&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441741</commentid>
    <comment_count>4</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-12 17:13:08 -0700</bug_when>
    <thetext>It appears that simply removing the `time.sleep(0.01)` is enough to fix the issue for run-api-tests.

The PeekNamedPipe errors seem to occur when we do the non-blocking read even though poll() is no longer None (i.e. the result of moving the while condition).

---

Note that there is an *existing* error with TestServerProcess.test_basic -- first, this condition appears to be bogus(?):
https://github.com/WebKit/webkit/blob/master/Tools/Scripts/webkitpy/port/server_process_unittest.py#L110-L112

Once we fix that though, we get...
&gt; [1/5] webkitpy.port.server_process_unittest.TestServerProcess.test_basic erred:
&gt;   Traceback (most recent call last):
&gt;     File &quot;C:\...\Tools\Scripts\webkitpy\port\server_process_unittest.py&quot;, line 123, in test_basic
&gt;       self.assertEqual(line.strip(), &quot;stderr&quot;)
&gt;   AttributeError: &apos;NoneType&apos; object has no attribute &apos;strip&apos;

...which I still don&apos;t understand, but could probably be tracked in a separate ticket.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1441750</commentid>
    <comment_count>5</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-12 18:01:53 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #4)
&gt; ...which I still don&apos;t understand, but could probably be tracked in a
&gt; separate ticket.

Oops, looks like there&apos;s already a patch for this in https://bugs.webkit.org/show_bug.cgi?id=187581. :D</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442010</commentid>
    <comment_count>6</comment_count>
      <attachid>344980</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-13 14:21:37 -0700</bug_when>
    <thetext>Created attachment 344980
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442014</commentid>
    <comment_count>7</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-13 14:28:05 -0700</bug_when>
    <thetext>For some enigmatic reason, the issue was caused by calling Popen.poll immediately after time.sleep (or even win32api.Sleep).

The solution, however, was simple enough in hindsight:
- do NOT return immediately if we&apos;re still before the deadline (even if the process has exited)
- do NOT sleep if the process has already exited</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442066</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-13 15:43:17 -0700</bug_when>
    <thetext>(In reply to Ross Kirsling from comment #7)
&gt; For some enigmatic reason, the issue was caused by calling Popen.poll
&gt; immediately after time.sleep (or even win32api.Sleep).

What is the issue? What will happen if Popen.poll is called immediately after time.sleep?


&gt; The solution, however, was simple enough in hindsight:
&gt; - do NOT return immediately if we&apos;re still before the deadline (even if the
&gt; process has exited)
&gt; - do NOT sleep if the process has already exited

So simple. Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442068</commentid>
    <comment_count>9</comment_count>
      <attachid>344980</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-13 15:45:33 -0700</bug_when>
    <thetext>Comment on attachment 344980
Patch

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

&gt; Tools/Scripts/webkitpy/port/server_process.py:308
&gt;                  return

You should put the condition here instead of above.

self._proc.poll() is not None:
  return

&gt; Tools/Scripts/webkitpy/port/server_process_unittest.py:131
&gt; +        cmd = [sys.executable, &apos;-c&apos;, &apos;import sys; print &quot;stdout&quot;; sys.stdout.flush(); print &gt;&gt;sys.stderr, &quot;stderr&quot;; sys.stderr.flush();&apos;]

All files are flushed when the process exits. You don&apos;t need to flush.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442157</commentid>
    <comment_count>10</comment_count>
      <attachid>345018</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-13 20:39:21 -0700</bug_when>
    <thetext>Created attachment 345018
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442173</commentid>
    <comment_count>11</comment_count>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2018-07-13 22:13:33 -0700</bug_when>
    <thetext>Note: WinCairo failure here is of course unrelated. (I think it went red because I manually fixed the issue on the bot between the first and second checks.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442180</commentid>
    <comment_count>12</comment_count>
      <attachid>345018</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-13 23:11:35 -0700</bug_when>
    <thetext>Comment on attachment 345018
Patch

r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442186</commentid>
    <comment_count>13</comment_count>
      <attachid>345018</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-13 23:48:16 -0700</bug_when>
    <thetext>Comment on attachment 345018
Patch

Clearing flags on attachment: 345018

Committed r233834: &lt;https://trac.webkit.org/changeset/233834&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442187</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-07-13 23:48:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442188</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-07-14 00:13:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/42194916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1442657</commentid>
    <comment_count>16</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2018-07-17 03:14:43 -0700</bug_when>
    <thetext>Here is the WinCairo EWS error message:

&gt; midl : command line error MIDL1016 : cannot create intermediate file C:\Users\ContainerAdministrator\AppData\Local\Temp\MIDEFA7.tmp

Filed Bug 187725.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344751</attachid>
            <date>2018-07-10 22:25:28 -0700</date>
            <delta_ts>2018-07-12 01:12:18 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>1330</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQppbmRleCBk
ZDI5MjU4MGNmMS4uOTFmYWMyOGZlMmIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2VydmVyX3Byb2Nlc3MucHkKQEAgLTI5NSwxMCArMjk1LDkgQEAgY2xhc3MgU2VydmVyUHJv
Y2VzcyhvYmplY3QpOgogICAgICAgICAjIFNlZSBodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20v
cmVjaXBlcy80NDA1NTQtbW9kdWxlLXRvLWFsbG93LWFzeW5jaHJvbm91cy1zdWJwcm9jZXNzLXVz
ZS1vbi13aW4vCiAgICAgICAgICMgYW5kIGh0dHA6Ly9kb2NzLmFjdGl2ZXN0YXRlLmNvbS9hY3Rp
dmVweXRob24vMi42L3B5d2luMzIvbW9kdWxlcy5odG1sCiAgICAgICAgICMgZm9yIGRvY3VtZW50
YXRpb24gb24gYWxsIG9mIHRoZXNlIHdpbjMyLXNwZWNpZmljIG1vZHVsZXMuCi0gICAgICAgIG5v
dyA9IHRpbWUudGltZSgpCiAgICAgICAgIG91dF9maCA9IG1zdmNydC5nZXRfb3NmaGFuZGxlKHNl
bGYuX3Byb2Muc3Rkb3V0LmZpbGVubygpKQogICAgICAgICBlcnJfZmggPSBtc3ZjcnQuZ2V0X29z
ZmhhbmRsZShzZWxmLl9wcm9jLnN0ZGVyci5maWxlbm8oKSkKLSAgICAgICAgd2hpbGUgKHNlbGYu
X3Byb2MucG9sbCgpIGlzIE5vbmUpIGFuZCAobm93IDwgZGVhZGxpbmUpOgorICAgICAgICB3aGls
ZSBUcnVlOgogICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fbm9uX2Jsb2NraW5nX3JlYWRfd2lu
MzIob3V0X2ZoKQogICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9ub25fYmxvY2tpbmdfcmVhZF93
aW4zMihlcnJfZmgpCiAgICAgICAgICAgICBpZiBvdXRwdXQgb3IgZXJyb3I6CkBAIC0zMDcsOCAr
MzA2LDkgQEAgY2xhc3MgU2VydmVyUHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGlm
IGVycm9yOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvciArPSBlcnJvcgogICAgICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgaWYgKHNlbGYuX3Byb2MucG9sbCgpIGlzIG5v
dCBOb25lKSBvciAodGltZS50aW1lKCkgPiBkZWFkbGluZSk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIAogICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQotICAgICAgICAgICAgbm93ID0gdGlt
ZS50aW1lKCkKICAgICAgICAgcmV0dXJuCiAKICAgICBkZWYgX25vbl9ibG9ja2luZ19yZWFkX3dp
bjMyKHNlbGYsIGhhbmRsZSk6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344835</attachid>
            <date>2018-07-12 01:12:06 -0700</date>
            <delta_ts>2018-07-13 14:21:34 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip2.diff</filename>
            <type>text/plain</type>
            <size>2571</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5w
eSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQppbmRleCBk
ZDI5MjU4MGNmMS4uNjI1OTU5NjU3MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvc2VydmVyX3Byb2Nlc3MucHkKQEAgLTI5NSwxMCArMjk1LDkgQEAgY2xhc3MgU2VydmVyUHJv
Y2VzcyhvYmplY3QpOgogICAgICAgICAjIFNlZSBodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20v
cmVjaXBlcy80NDA1NTQtbW9kdWxlLXRvLWFsbG93LWFzeW5jaHJvbm91cy1zdWJwcm9jZXNzLXVz
ZS1vbi13aW4vCiAgICAgICAgICMgYW5kIGh0dHA6Ly9kb2NzLmFjdGl2ZXN0YXRlLmNvbS9hY3Rp
dmVweXRob24vMi42L3B5d2luMzIvbW9kdWxlcy5odG1sCiAgICAgICAgICMgZm9yIGRvY3VtZW50
YXRpb24gb24gYWxsIG9mIHRoZXNlIHdpbjMyLXNwZWNpZmljIG1vZHVsZXMuCi0gICAgICAgIG5v
dyA9IHRpbWUudGltZSgpCiAgICAgICAgIG91dF9maCA9IG1zdmNydC5nZXRfb3NmaGFuZGxlKHNl
bGYuX3Byb2Muc3Rkb3V0LmZpbGVubygpKQogICAgICAgICBlcnJfZmggPSBtc3ZjcnQuZ2V0X29z
ZmhhbmRsZShzZWxmLl9wcm9jLnN0ZGVyci5maWxlbm8oKSkKLSAgICAgICAgd2hpbGUgKHNlbGYu
X3Byb2MucG9sbCgpIGlzIE5vbmUpIGFuZCAobm93IDwgZGVhZGxpbmUpOgorICAgICAgICB3aGls
ZSBUcnVlOgogICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5fbm9uX2Jsb2NraW5nX3JlYWRfd2lu
MzIob3V0X2ZoKQogICAgICAgICAgICAgZXJyb3IgPSBzZWxmLl9ub25fYmxvY2tpbmdfcmVhZF93
aW4zMihlcnJfZmgpCiAgICAgICAgICAgICBpZiBvdXRwdXQgb3IgZXJyb3I6CkBAIC0zMDcsOSAr
MzA2LDkgQEAgY2xhc3MgU2VydmVyUHJvY2VzcyhvYmplY3QpOgogICAgICAgICAgICAgICAgIGlm
IGVycm9yOgogICAgICAgICAgICAgICAgICAgICBzZWxmLl9lcnJvciArPSBlcnJvcgogICAgICAg
ICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgaWYgKHNlbGYuX3Byb2MucG9sbCgpIGlzIG5v
dCBOb25lKSBvciAodGltZS50aW1lKCkgPiBkZWFkbGluZSk6CisgICAgICAgICAgICAgICAgcmV0
dXJuIAogICAgICAgICAgICAgdGltZS5zbGVlcCgwLjAxKQotICAgICAgICAgICAgbm93ID0gdGlt
ZS50aW1lKCkKLSAgICAgICAgcmV0dXJuCiAKICAgICBkZWYgX25vbl9ibG9ja2luZ19yZWFkX3dp
bjMyKHNlbGYsIGhhbmRsZSk6CiAgICAgICAgIHRyeToKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weSBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQppbmRleCAzMzMwMDll
MDRhMS4uN2NlZWQwMzczN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9zZXJ2ZXJfcHJvY2Vzc191bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKQEAgLTEyNyw2ICsxMjcsMjIgQEAgY2xh
c3MgVGVzdFNlcnZlclByb2Nlc3ModW5pdHRlc3QuVGVzdENhc2UpOgogCiAgICAgICAgIHByb2Mu
c3RvcCgwKQogCisgICAgZGVmIHRlc3RfcmVhZF9hZnRlcl9wcm9jZXNzX2V4aXRzKHNlbGYpOgor
ICAgICAgICBjbWQgPSBbc3lzLmV4ZWN1dGFibGUsICctYycsICdpbXBvcnQgc3lzOyBwcmludCAi
c3Rkb3V0IjsgcHJpbnQgPj5zeXMuc3RkZXJyLCAic3RkZXJyIjsnXQorICAgICAgICBob3N0ID0g
U3lzdGVtSG9zdCgpCisgICAgICAgIGZhY3RvcnkgPSBQb3J0RmFjdG9yeShob3N0KQorICAgICAg
ICBwb3J0ID0gZmFjdG9yeS5nZXQoKQorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAg
ICBwcm9jID0gc2VydmVyX3Byb2Nlc3MuU2VydmVyUHJvY2Vzcyhwb3J0LCAncHl0aG9uJywgY21k
KQorICAgICAgICBwcm9jLndyaXRlKCcnKQorICAgICAgICB0aW1lLnNsZWVwKDAuMSkgICMgR2l2
ZSBwcm9jZXNzIGEgbW9tZW50IHRvIGNsb3NlLgorCisgICAgICAgIGxpbmUgPSBwcm9jLnJlYWRf
c3Rkb3V0X2xpbmUobm93ICsgMS4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUuc3Ry
aXAoKSwgInN0ZG91dCIpCisKKyAgICAgICAgbGluZSA9IHByb2MucmVhZF9zdGRlcnJfbGluZShu
b3cgKyAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3RkZXJy
IikKKwogICAgIGRlZiB0ZXN0X3Byb2Nlc3NfY3Jhc2hpbmcoc2VsZik6CiAgICAgICAgIGNtZCA9
IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBzeXM7IHByaW50ICJzdGRvdXQgMSI7IHBy
aW50ICJzdGRvdXQgMiI7IHByaW50ICJzdGRvdXQgMyI7IHN5cy5zdGRvdXQuZmx1c2goKTsgc3lz
LnN0ZGluLnJlYWRsaW5lKCk7IHN5cy5leGl0KDEpOyddCiAgICAgICAgIGhvc3QgPSBTeXN0ZW1I
b3N0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>344980</attachid>
            <date>2018-07-13 14:21:37 -0700</date>
            <delta_ts>2018-07-13 20:39:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187547-20180713142136.patch</filename>
            <type>text/plain</type>
            <size>3735</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzNzQ3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOWQ4MDU4MGEyZTljNzY5ZTMxNjI1NzhmYTk5NzRiNjMw
YWQyZjQ5Zi4uOWYxZDZhZGMzYzk1ZWFlMzcyZDhlOTc0YWUyNzc0ZjI2ZDgzMDE4NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE4LTA3LTEzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
KworICAgICAgICBbV2luQ2Fpcm9dIHJ1bi1hcGktdGVzdHMgaXMgdGltaW5nIG91dCBmb3IgYWxt
b3N0IGFsbCB0ZXN0IGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODc1NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weToKKyAg
ICAgICAgKFNlcnZlclByb2Nlc3MuX3dhaXRfZm9yX2RhdGFfYW5kX3VwZGF0ZV9idWZmZXJzX3Vz
aW5nX3dpbjMyX2FwaXMpOgorICAgICAgICBTdGlsbCBhdHRlbXB0IHRvIHJlYWQgZnJvbSBzdGRv
dXQvc3RkZXJyIGV2ZW4gaWYgdGhlIHByb2Nlc3MgaGFzIGV4aXRlZCwgYXMgbG9uZyBhcyBpdCdz
IGJlZm9yZSB0aGUgZGVhZGxpbmUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
c2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0U2VydmVyUHJvY2Vzcy50
ZXN0X3JlYWRfYWZ0ZXJfcHJvY2Vzc19leGl0cyk6CisgICAgICAgIEFkZCB0ZXN0IGNhc2UuCisK
IDIwMTgtMDctMTEgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4K
IAogICAgICAgICBSZWR1Y2Ugc2l6ZSBvZiBXZWJDb3JlOjpVUkwKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weQppbmRleCBkZDI5MjU4MGNmMTk0ODBiNWFi
MGNiZGMwMDUzYTZkMDUyODdmMWUzLi5iYTIzY2QxNjRjZWI1Y2Q5NDczMTEyMzY2NzU4NjI0Njk5
NTYwY2UyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3By
b2Nlc3MucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNz
LnB5CkBAIC0yOTUsMjEgKzI5NSwxOCBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAg
ICAgICAgICMgU2VlIGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVzLzQ0MDU1NC1t
b2R1bGUtdG8tYWxsb3ctYXN5bmNocm9ub3VzLXN1YnByb2Nlc3MtdXNlLW9uLXdpbi8KICAgICAg
ICAgIyBhbmQgaHR0cDovL2RvY3MuYWN0aXZlc3RhdGUuY29tL2FjdGl2ZXB5dGhvbi8yLjYvcHl3
aW4zMi9tb2R1bGVzLmh0bWwKICAgICAgICAgIyBmb3IgZG9jdW1lbnRhdGlvbiBvbiBhbGwgb2Yg
dGhlc2Ugd2luMzItc3BlY2lmaWMgbW9kdWxlcy4KLSAgICAgICAgbm93ID0gdGltZS50aW1lKCkK
ICAgICAgICAgb3V0X2ZoID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc2VsZi5fcHJvYy5zdGRvdXQu
ZmlsZW5vKCkpCiAgICAgICAgIGVycl9maCA9IG1zdmNydC5nZXRfb3NmaGFuZGxlKHNlbGYuX3By
b2Muc3RkZXJyLmZpbGVubygpKQotICAgICAgICB3aGlsZSAoc2VsZi5fcHJvYy5wb2xsKCkgaXMg
Tm9uZSkgYW5kIChub3cgPCBkZWFkbGluZSk6CisgICAgICAgIHdoaWxlIHRpbWUudGltZSgpIDwg
ZGVhZGxpbmU6CiAgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl9ub25fYmxvY2tpbmdfcmVhZF93
aW4zMihvdXRfZmgpCiAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX25vbl9ibG9ja2luZ19yZWFk
X3dpbjMyKGVycl9maCkKLSAgICAgICAgICAgIGlmIG91dHB1dCBvciBlcnJvcjoKKyAgICAgICAg
ICAgIGlmIG91dHB1dCBvciBlcnJvciBvciBzZWxmLl9wcm9jLnBvbGwoKSBpcyBub3QgTm9uZToK
ICAgICAgICAgICAgICAgICBpZiBvdXRwdXQ6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX291
dHB1dCArPSBvdXRwdXQKICAgICAgICAgICAgICAgICBpZiBlcnJvcjoKICAgICAgICAgICAgICAg
ICAgICAgc2VsZi5fZXJyb3IgKz0gZXJyb3IKICAgICAgICAgICAgICAgICByZXR1cm4KICAgICAg
ICAgICAgIHRpbWUuc2xlZXAoMC4wMSkKLSAgICAgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCi0g
ICAgICAgIHJldHVybgogCiAgICAgZGVmIF9ub25fYmxvY2tpbmdfcmVhZF93aW4zMihzZWxmLCBo
YW5kbGUpOgogICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvc2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKaW5kZXggN2I1OThjMjE5MWRiZDE4Mjg1
ODEzMWFiNWZiMjVmZjQ3Y2RiNWM4MC4uNDZiZTQ3ZGQ4YzIxMWFmNzY1ZmJhNTc3ZGE3NTk5N2Nm
ZmRmM2NkMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9w
cm9jZXNzX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2
ZXJfcHJvY2Vzc191bml0dGVzdC5weQpAQCAtMTI3LDYgKzEyNywyNCBAQCBjbGFzcyBUZXN0U2Vy
dmVyUHJvY2Vzcyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Mud3JpdGUoJ0VuZFxu
JykKICAgICAgICAgcHJvYy5zdG9wKDApCiAKKyAgICBkZWYgdGVzdF9yZWFkX2FmdGVyX3Byb2Nl
c3NfZXhpdHMoc2VsZik6CisgICAgICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2lt
cG9ydCBzeXM7IHByaW50ICJzdGRvdXQiOyBzeXMuc3Rkb3V0LmZsdXNoKCk7IHByaW50ID4+c3lz
LnN0ZGVyciwgInN0ZGVyciI7IHN5cy5zdGRlcnIuZmx1c2goKTsnXQorICAgICAgICBob3N0ID0g
U3lzdGVtSG9zdCgpCisgICAgICAgIGZhY3RvcnkgPSBQb3J0RmFjdG9yeShob3N0KQorICAgICAg
ICBwb3J0ID0gZmFjdG9yeS5nZXQoKQorICAgICAgICBub3cgPSB0aW1lLnRpbWUoKQorICAgICAg
ICBwcm9jID0gc2VydmVyX3Byb2Nlc3MuU2VydmVyUHJvY2Vzcyhwb3J0LCAncHl0aG9uJywgY21k
KQorICAgICAgICBwcm9jLndyaXRlKCcnKQorICAgICAgICB0aW1lLnNsZWVwKDAuMSkgICMgR2l2
ZSBwcm9jZXNzIGEgbW9tZW50IHRvIGNsb3NlLgorCisgICAgICAgIGxpbmUgPSBwcm9jLnJlYWRf
c3Rkb3V0X2xpbmUobm93ICsgMS4wKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGxpbmUuc3Ry
aXAoKSwgInN0ZG91dCIpCisKKyAgICAgICAgbGluZSA9IHByb2MucmVhZF9zdGRlcnJfbGluZShu
b3cgKyAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwobGluZS5zdHJpcCgpLCAic3RkZXJy
IikKKworICAgICAgICBwcm9jLnN0b3AoMCkKKwogICAgIGRlZiB0ZXN0X3Byb2Nlc3NfY3Jhc2hp
bmcoc2VsZik6CiAgICAgICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBz
eXM7IHByaW50ICJzdGRvdXQgMSI7IHByaW50ICJzdGRvdXQgMiI7IHByaW50ICJzdGRvdXQgMyI7
IHN5cy5zdGRvdXQuZmx1c2goKTsgc3lzLnN0ZGluLnJlYWRsaW5lKCk7IHN5cy5leGl0KDEpOydd
CiAgICAgICAgIGhvc3QgPSBTeXN0ZW1Ib3N0KCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345018</attachid>
            <date>2018-07-13 20:39:21 -0700</date>
            <delta_ts>2018-07-13 23:48:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-187547-20180713203920.patch</filename>
            <type>text/plain</type>
            <size>3686</size>
            <attacher name="Ross Kirsling">ross.kirsling</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMzODMzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMGQxZmIxOGM1ODk0ZmE3ZThjYTRkMmVmZDY1YTgwOTVi
YWFhMGRkNS4uNDU0YjMwOTk3YmQ2MTkwZWI0NzVjMjkyNjA1ZGM2MTM2MjMxZjQwOSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDE4LTA3LTEzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
KworICAgICAgICBbV2luQ2Fpcm9dIHJ1bi1hcGktdGVzdHMgaXMgdGltaW5nIG91dCBmb3IgYWxt
b3N0IGFsbCB0ZXN0IGNhc2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xODc1NDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vzcy5weToKKyAg
ICAgICAgKFNlcnZlclByb2Nlc3MuX3dhaXRfZm9yX2RhdGFfYW5kX3VwZGF0ZV9idWZmZXJzX3Vz
aW5nX3dpbjMyX2FwaXMpOgorICAgICAgICBTdGlsbCBhdHRlbXB0IHRvIHJlYWQgZnJvbSBzdGRv
dXQvc3RkZXJyIGV2ZW4gaWYgdGhlIHByb2Nlc3MgaGFzIGV4aXRlZCwgYXMgbG9uZyBhcyBpdCdz
IGJlZm9yZSB0aGUgZGVhZGxpbmUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
c2VydmVyX3Byb2Nlc3NfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0U2VydmVyUHJvY2Vzcy50
ZXN0X3JlYWRfYWZ0ZXJfcHJvY2Vzc19leGl0cyk6CisgICAgICAgIEFkZCB0ZXN0IGNhc2UuCisK
IDIwMTgtMDctMTMgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWRkIFRlc3RFeHBlY3RhdGlvbnMgYW5kIGJhc2VsaW5lcyBmb3IgaU9TIDEyCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2VydmVyX3Byb2Nlc3MucHkKaW5kZXggZGQyOTI1ODBj
ZjE5NDgwYjVhYjBjYmRjMDA1M2E2ZDA1Mjg3ZjFlMy4uMWEzOTI0MmQ5MTgwNjBhZWNjZmUwNDlm
YmE1OTA4NWJmZWQ1Y2JjNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L3NlcnZlcl9wcm9jZXNzLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2
ZXJfcHJvY2Vzcy5weQpAQCAtMjk1LDEwICsyOTUsOSBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9i
amVjdCk6CiAgICAgICAgICMgU2VlIGh0dHA6Ly9jb2RlLmFjdGl2ZXN0YXRlLmNvbS9yZWNpcGVz
LzQ0MDU1NC1tb2R1bGUtdG8tYWxsb3ctYXN5bmNocm9ub3VzLXN1YnByb2Nlc3MtdXNlLW9uLXdp
bi8KICAgICAgICAgIyBhbmQgaHR0cDovL2RvY3MuYWN0aXZlc3RhdGUuY29tL2FjdGl2ZXB5dGhv
bi8yLjYvcHl3aW4zMi9tb2R1bGVzLmh0bWwKICAgICAgICAgIyBmb3IgZG9jdW1lbnRhdGlvbiBv
biBhbGwgb2YgdGhlc2Ugd2luMzItc3BlY2lmaWMgbW9kdWxlcy4KLSAgICAgICAgbm93ID0gdGlt
ZS50aW1lKCkKICAgICAgICAgb3V0X2ZoID0gbXN2Y3J0LmdldF9vc2ZoYW5kbGUoc2VsZi5fcHJv
Yy5zdGRvdXQuZmlsZW5vKCkpCiAgICAgICAgIGVycl9maCA9IG1zdmNydC5nZXRfb3NmaGFuZGxl
KHNlbGYuX3Byb2Muc3RkZXJyLmZpbGVubygpKQotICAgICAgICB3aGlsZSAoc2VsZi5fcHJvYy5w
b2xsKCkgaXMgTm9uZSkgYW5kIChub3cgPCBkZWFkbGluZSk6CisgICAgICAgIHdoaWxlIHRpbWUu
dGltZSgpIDwgZGVhZGxpbmU6CiAgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl9ub25fYmxvY2tp
bmdfcmVhZF93aW4zMihvdXRfZmgpCiAgICAgICAgICAgICBlcnJvciA9IHNlbGYuX25vbl9ibG9j
a2luZ19yZWFkX3dpbjMyKGVycl9maCkKICAgICAgICAgICAgIGlmIG91dHB1dCBvciBlcnJvcjoK
QEAgLTMwNyw5ICszMDYsOSBAQCBjbGFzcyBTZXJ2ZXJQcm9jZXNzKG9iamVjdCk6CiAgICAgICAg
ICAgICAgICAgaWYgZXJyb3I6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuX2Vycm9yICs9IGVy
cm9yCiAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBpZiBzZWxmLl9wcm9jLnBv
bGwoKSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4KICAgICAgICAgICAgIHRp
bWUuc2xlZXAoMC4wMSkKLSAgICAgICAgICAgIG5vdyA9IHRpbWUudGltZSgpCi0gICAgICAgIHJl
dHVybgogCiAgICAgZGVmIF9ub25fYmxvY2tpbmdfcmVhZF93aW4zMihzZWxmLCBoYW5kbGUpOgog
ICAgICAgICB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2Vy
dmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvc2Vy
dmVyX3Byb2Nlc3NfdW5pdHRlc3QucHkKaW5kZXggN2I1OThjMjE5MWRiZDE4Mjg1ODEzMWFiNWZi
MjVmZjQ3Y2RiNWM4MC4uY2Y2MmU1OTkxZWY2YjU2MTNlY2ExZjgxMjlmM2RjM2U2MzhiYzYxNCAx
MDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3NlcnZlcl9wcm9jZXNzX3Vu
aXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9zZXJ2ZXJfcHJvY2Vz
c191bml0dGVzdC5weQpAQCAtMTI3LDYgKzEyNywyNCBAQCBjbGFzcyBUZXN0U2VydmVyUHJvY2Vz
cyh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgIHByb2Mud3JpdGUoJ0VuZFxuJykKICAgICAg
ICAgcHJvYy5zdG9wKDApCiAKKyAgICBkZWYgdGVzdF9yZWFkX2FmdGVyX3Byb2Nlc3NfZXhpdHMo
c2VsZik6CisgICAgICAgIGNtZCA9IFtzeXMuZXhlY3V0YWJsZSwgJy1jJywgJ2ltcG9ydCBzeXM7
IHByaW50ICJzdGRvdXQiOyBwcmludCA+PnN5cy5zdGRlcnIsICJzdGRlcnIiOyddCisgICAgICAg
IGhvc3QgPSBTeXN0ZW1Ib3N0KCkKKyAgICAgICAgZmFjdG9yeSA9IFBvcnRGYWN0b3J5KGhvc3Qp
CisgICAgICAgIHBvcnQgPSBmYWN0b3J5LmdldCgpCisgICAgICAgIG5vdyA9IHRpbWUudGltZSgp
CisgICAgICAgIHByb2MgPSBzZXJ2ZXJfcHJvY2Vzcy5TZXJ2ZXJQcm9jZXNzKHBvcnQsICdweXRo
b24nLCBjbWQpCisgICAgICAgIHByb2Mud3JpdGUoJycpCisgICAgICAgIHRpbWUuc2xlZXAoMC4x
KSAgIyBHaXZlIHByb2Nlc3MgYSBtb21lbnQgdG8gY2xvc2UuCisKKyAgICAgICAgbGluZSA9IHBy
b2MucmVhZF9zdGRvdXRfbGluZShub3cgKyAxLjApCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
bGluZS5zdHJpcCgpLCAic3Rkb3V0IikKKworICAgICAgICBsaW5lID0gcHJvYy5yZWFkX3N0ZGVy
cl9saW5lKG5vdyArIDEuMCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChsaW5lLnN0cmlwKCks
ICJzdGRlcnIiKQorCisgICAgICAgIHByb2Muc3RvcCgwKQorCiAgICAgZGVmIHRlc3RfcHJvY2Vz
c19jcmFzaGluZyhzZWxmKToKICAgICAgICAgY21kID0gW3N5cy5leGVjdXRhYmxlLCAnLWMnLCAn
aW1wb3J0IHN5czsgcHJpbnQgInN0ZG91dCAxIjsgcHJpbnQgInN0ZG91dCAyIjsgcHJpbnQgInN0
ZG91dCAzIjsgc3lzLnN0ZG91dC5mbHVzaCgpOyBzeXMuc3RkaW4ucmVhZGxpbmUoKTsgc3lzLmV4
aXQoMSk7J10KICAgICAgICAgaG9zdCA9IFN5c3RlbUhvc3QoKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>