<?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>178368</bug_id>
          
          <creation_ts>2017-10-16 16:51:06 -0700</creation_ts>
          <short_desc>webkitpy: Force workers to exit if they do not do so gracefully</short_desc>
          <delta_ts>2017-10-20 16:14:24 -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>NEW</bug_status>
          <resolution></resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=178402</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>dbates</cc>
    
    <cc>glenn</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1361016</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-16 16:51:06 -0700</bug_when>
    <thetext>If a worker process refuses to gracefully exit after receiving a SIGTERM, we should send it a SIGKILL so the main process doesn&apos;t hang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361017</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-10-16 16:51:48 -0700</bug_when>
    <thetext>&lt;rdar://problem/35018927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361018</commentid>
    <comment_count>2</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-16 16:52:56 -0700</bug_when>
    <thetext>Note that we&apos;re seen this a number of times on EWS.  It&apos;s not the easiest problem to reproduce, and indicates something is wrong with the workers.  We should investigate what the problem with the workers is as well, but there is no reason to allow a process which we have already sent a SIGTERM to to continue running.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361023</commentid>
    <comment_count>3</comment_count>
      <attachid>323959</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-16 17:01:33 -0700</bug_when>
    <thetext>Created attachment 323959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361268</commentid>
    <comment_count>4</comment_count>
      <attachid>323959</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-10-17 09:42:52 -0700</bug_when>
    <thetext>Comment on attachment 323959
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:-140
&gt; -                worker.join()

was this worker.join() waiting indefinitely in the cases we noticed? If so, simply providing a timeout parameter might help.

&gt; Tools/Scripts/webkitpy/common/message_pool.py:144
&gt; +        # If nice termination doesn&apos;t work, force worker to terminate.

Nit: replace &quot;nice&quot; with &quot;above&quot; or &quot;regular&quot;. Nice makes me think if &quot;nice&quot; is a kind of termination defined somewhere.

&gt; Tools/Scripts/webkitpy/common/message_pool.py:148
&gt; +                worker.join(timeout=math.ceil(timeout_target - time.time()) if timeout_target &gt; time.time() else 0)

This should be done in multiple lines. This is unreadable and non-obvious.

Also adding a comment here would be useful, explaining that you are implementing an overall timeout of 60 seconds (for all the workers combined), rather than usual 60s timeout for each worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361271</commentid>
    <comment_count>5</comment_count>
      <attachid>323959</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 09:49:42 -0700</bug_when>
    <thetext>Comment on attachment 323959
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/message_pool.py:-140
&gt;&gt; -                worker.join()
&gt; 
&gt; was this worker.join() waiting indefinitely in the cases we noticed? If so, simply providing a timeout parameter might help.

Yes, the worker.join() was waiting indefinitely.

Simply providing a timeout would un-block the main process, but would then leave orphaned workers.  That&apos;s why I forcibly kill the workers below.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361280</commentid>
    <comment_count>6</comment_count>
      <attachid>324022</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 10:07:39 -0700</bug_when>
    <thetext>Created attachment 324022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361281</commentid>
    <comment_count>7</comment_count>
      <attachid>324022</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 10:08:46 -0700</bug_when>
    <thetext>Comment on attachment 324022
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:155
&gt; +                os.kill(worker.pid, signal.SIGKILL)

We may want to throw an exception if we have to SIGKILL a worker.  The main thread should be fine, but this indicates something is wrong with the worker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361289</commentid>
    <comment_count>8</comment_count>
      <attachid>324022</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-10-17 10:21:42 -0700</bug_when>
    <thetext>Comment on attachment 324022
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:144
&gt; +        # Check if above termination was successful, force worker to terminate if it wasn&apos;t.

Nit: &quot;worker&quot; -&gt; &quot;workers&quot;

&gt; Tools/Scripts/webkitpy/common/message_pool.py:148
&gt; +                # This sets a timeout of 60 seconds for all workers to close, instead of 60 seconds for each worker.

Thinking more about it, I think it might be better to keep fixed timeout for each worker. Right now, if first worker is stuck, it would take 60s to timeout, and rest all workers will have 0s timeouts. Having fixed timeout would increase overall timeout, but that&apos;s ok to have few minutes timeout in case of some problem.

&gt; Tools/Scripts/webkitpy/common/message_pool.py:154
&gt; +            if worker.is_alive():

Nit: would be good to add a newline before this to improve readability.

&gt; Tools/Scripts/webkitpy/common/message_pool.py:156
&gt; +

Can you at least add a log?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361298</commentid>
    <comment_count>9</comment_count>
      <attachid>324022</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 10:37:17 -0700</bug_when>
    <thetext>Comment on attachment 324022
Patch

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

&gt;&gt; Tools/Scripts/webkitpy/common/message_pool.py:148
&gt;&gt; +                # This sets a timeout of 60 seconds for all workers to close, instead of 60 seconds for each worker.
&gt; 
&gt; Thinking more about it, I think it might be better to keep fixed timeout for each worker. Right now, if first worker is stuck, it would take 60s to timeout, and rest all workers will have 0s timeouts. Having fixed timeout would increase overall timeout, but that&apos;s ok to have few minutes timeout in case of some problem.

I don&apos;t think we want a fixed timeout.

In your example, at least 60 seconds would have passed between worker 2&apos;s terminate() and the attempted join.  I can see a case for setting the timeout to 1 instead of 0 in this case, but if worker 2 isn&apos;t stuck, worker.is_alive() should return false after 60 seconds anyways.

When I&apos;ve observed this problem, it&apos;s usually present in all the workers.  For EWS, this means we&apos;d have to wait for 24 minutes before we kill all workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361369</commentid>
    <comment_count>10</comment_count>
      <attachid>324022</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-10-17 12:52:08 -0700</bug_when>
    <thetext>Comment on attachment 324022
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        webkitpy: Force workers to exit if they do not do so gracefully

I&apos;m not super keen on this idea. We&apos;ve never hit this condition in the past, and when it happened recently, that was an actual recent regression that needed to be fixed (and would have been masked by the force kill).

Having defense in depth is generally good in my opinion, but the specifics of this case seem to suggest that increased code complexity may not be worth it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361381</commentid>
    <comment_count>11</comment_count>
      <attachid>324022</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 13:15:03 -0700</bug_when>
    <thetext>Comment on attachment 324022
Patch

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

&gt;&gt; Tools/ChangeLog:3
&gt;&gt; +        webkitpy: Force workers to exit if they do not do so gracefully
&gt; 
&gt; I&apos;m not super keen on this idea. We&apos;ve never hit this condition in the past, and when it happened recently, that was an actual recent regression that needed to be fixed (and would have been masked by the force kill).
&gt; 
&gt; Having defense in depth is generally good in my opinion, but the specifics of this case seem to suggest that increased code complexity may not be worth it.

Because of this, I pointed out in comment 8 that we should consider throwing an exception when this happens.

While I agree that we should be cautious of masking problems in the worker processes, the parent process should be able to force workers to exit when abnormal circumstances are detected, even if that worker is misbehaving.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361389</commentid>
    <comment_count>12</comment_count>
      <attachid>324049</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 13:33:32 -0700</bug_when>
    <thetext>Created attachment 324049
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361430</commentid>
    <comment_count>13</comment_count>
      <attachid>324049</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-17 14:42:41 -0700</bug_when>
    <thetext>Comment on attachment 324049
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:157
&gt; +                os.kill(worker.pid, signal.SIGKILL)

Could this put us in a bad state? I take it this we do not need to do any cleaning up, especially for iOS simulator and iOS device testing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361437</commentid>
    <comment_count>14</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 15:04:48 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #13)
&gt; Comment on attachment 324049 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=324049&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/message_pool.py:157
&gt; &gt; +                os.kill(worker.pid, signal.SIGKILL)
&gt; 
&gt; Could this put us in a bad state? I take it this we do not need to do any
&gt; cleaning up, especially for iOS simulator and iOS device testing?

In theory, yes, it could. If a worker owned any sort of cleanup tied to SIGTERM, killing the process could leave things in a bad state.

In practice, we don&apos;t tie any cleanup to SIGTERM at the moment.  The two examples you gave are cleaned up by the parent process when the children processes receive SIGTERMs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361440</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-17 15:17:58 -0700</bug_when>
    <thetext>I agree with the sentiments of comment 10. I am unclear how we came to the conclusion to file this bug from the current EWS situation. I am not at a computer with a checkout. I do recall many changes to the message pool code recently and we were not experiencing stuck EWS bots over the past six months (or at least not as many stuck bots) as we are now. What has changed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361443</commentid>
    <comment_count>16</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 15:32:22 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #15)
&gt; I agree with the sentiments of comment 10. I am unclear how we came to the
&gt; conclusion to file this bug from the current EWS situation. I am not at a
&gt; computer with a checkout. I do recall many changes to the message pool code
&gt; recently and we were not experiencing stuck EWS bots over the past six
&gt; months (or at least not as many stuck bots) as we are now. What has changed?

The specific issue which caused the EWS bug has already been addressed in &lt;https://trac.webkit.org/changeset/223572&gt;.

The purpose of this bug is to make sure that when workers do not respond gracefully to a SIGTERM, the parent process does not get stuck and there are no orphaned processes.

There were 2 problems which caused EWS to get into this state.  One of those problems was covered by &lt;https://bugs.webkit.org/show_bug.cgi?id=178402&gt;, this is the reason why the workers were failing to gracefully exit.  The first problem is the regression.

The 2nd problem is this one: even if the workers fail to gracefully exit, the parent process should not hang forever.  The 2nd problem has been present in webkitpy for a long time, and is not a regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361446</commentid>
    <comment_count>17</comment_count>
      <attachid>324064</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 15:40:28 -0700</bug_when>
    <thetext>Created attachment 324064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361449</commentid>
    <comment_count>18</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-17 15:45:47 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #16)
&gt; The 2nd problem is this one: even if the workers fail to gracefully exit,
&gt; the parent process should not hang forever.  The 2nd problem has been
&gt; present in webkitpy for a long time, and is not a regression.

I do not think we should fix this &quot;problem&quot; as it represents a programming error. If we were to have fixed this &quot;problem&quot; then it would have masked the regression caused by bug #178402 and we likely would not have landed the fix for the root problem in &lt;https://trac.webkit.org/changeset/223572&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361452</commentid>
    <comment_count>19</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-17 15:47:47 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #18)
&gt; (In reply to Jonathan Bedard from comment #16)
&gt; &gt; The 2nd problem is this one: even if the workers fail to gracefully exit,
&gt; &gt; the parent process should not hang forever.  The 2nd problem has been
&gt; &gt; present in webkitpy for a long time, and is not a regression.
&gt; 
&gt; I do not think we should fix this &quot;problem&quot; as it represents a programming
&gt; error. If we were to have fixed this &quot;problem&quot; then it would have masked the
&gt; regression caused by bug #178402 and we likely would not have landed the fix
&gt; for the root problem in &lt;https://trac.webkit.org/changeset/223572&gt;.

*bug #176393</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361455</commentid>
    <comment_count>20</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-17 15:51:59 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #18)
&gt; (In reply to Jonathan Bedard from comment #16)
&gt; &gt; The 2nd problem is this one: even if the workers fail to gracefully exit,
&gt; &gt; the parent process should not hang forever.  The 2nd problem has been
&gt; &gt; present in webkitpy for a long time, and is not a regression.
&gt; 
&gt; I do not think we should fix this &quot;problem&quot; as it represents a programming
&gt; error. If we were to have fixed this &quot;problem&quot; then it would have masked the
&gt; regression caused by bug #178402 and we likely would not have landed the fix
&gt; for the root problem in &lt;https://trac.webkit.org/changeset/223572&gt;.

The current iteration of the patch (attachment 324064) just makes it so that a regression like the one in bug #176393 is fatal rather than causing EWS to lock up.  This seems more inline with how WebKit infrastructure usually works.  Don&apos;t we prefer immediate and fatal errors to undiagnosed hangs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1361469</commentid>
    <comment_count>21</comment_count>
      <attachid>324064</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-10-17 16:29:58 -0700</bug_when>
    <thetext>Comment on attachment 324064
Patch

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

&gt; Tools/Scripts/webkitpy/common/message_pool.py:171
&gt; +        if did_kill:
&gt; +            raise Exception(&apos;Workers failed to terminate for 60 seconds after SIGTERM&apos;)

Seems like a good idea to fail quickly.

How did you test this change? Would the EWS bubble be red, and would an archive with results still be uploaded?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362212</commentid>
    <comment_count>22</comment_count>
      <attachid>324252</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 11:20:15 -0700</bug_when>
    <thetext>Created attachment 324252
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362213</commentid>
    <comment_count>23</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 11:21:03 -0700</bug_when>
    <thetext>I&apos;m more convinced that we need this (small bug in the last patch, just updated it)

A more recent example from today, if we exit early because we run out of file handles, the SIGTERM handler on the workers may hang.  Unlike previously, this problem doesn&apos;t necissarily constitute a programming error on the part of webkitpy, as a bug in WebKit or even one of the tools we rely on (like spindump, or the simulator) could also cause this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362216</commentid>
    <comment_count>24</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-10-19 11:29:28 -0700</bug_when>
    <thetext>I agree with this change. 

I think it needs more testing on EWS to make sure that it makes the bubbles red, logs are uploaded when this issue is encountered and the bot is able to process next build properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362228</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 11:53:00 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #21)
&gt; Comment on attachment 324064 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=324064&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/message_pool.py:171
&gt; &gt; +        if did_kill:
&gt; &gt; +            raise Exception(&apos;Workers failed to terminate for 60 seconds after SIGTERM&apos;)
&gt; 
&gt; Seems like a good idea to fail quickly.
&gt; 
&gt; How did you test this change? Would the EWS bubble be red, and would an
&gt; archive with results still be uploaded?

The EWS bubble would we red, it would upload the archive, but the archive may not have much in it (depending on how far run-webkit-tests has gotten).  EWS doesn&apos;t make a distinction between failing exit codes.

I&apos;ve tested this run running run-webkit-tests in various configurations.  This problem isn&apos;t unique to EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362258</commentid>
    <comment_count>26</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2017-10-19 12:34:01 -0700</bug_when>
    <thetext>The bubbles shouldn&apos;t be red when there is an infrastructure failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362266</commentid>
    <comment_count>27</comment_count>
      <attachid>324266</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 13:06:47 -0700</bug_when>
    <thetext>Created attachment 324266
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362268</commentid>
    <comment_count>28</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 13:09:02 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #27)
&gt; Created attachment 324266 [details]
&gt; Patch

Sending this through to test EWS behavior when an exception is thrown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362408</commentid>
    <comment_count>29</comment_count>
      <attachid>324266</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2017-10-19 15:46:38 -0700</bug_when>
    <thetext>Comment on attachment 324266
Patch

I feel this patch (attachment #324266) is a bad idea. Ideally, we should not have run-away multiprocessing.Process processes. And I do not feel it is worth the code complexity to defend against this bug. If we can find a less complex solution that would be great. By default, Python will terminate the process when it receives a SIGTERM. Therefore, the only way we can get into trouble is whenever we register a SIGTERM handler. At the time, only code in Tools/Scripts/webkitpy/common/interupt_debugging.py does this.

Any solution, like the one proposed, that subverts the multiprocessing module by calling os.kill() is suspicious and seems like a bad idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362447</commentid>
    <comment_count>30</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2017-10-19 16:42:56 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #29)
&gt; Comment on attachment 324266 [details]
&gt; Patch
&gt; 
&gt; I feel this patch (attachment #324266 [details]) is a bad idea. Ideally, we
&gt; should not have run-away multiprocessing.Process processes. And I do not
&gt; feel it is worth the code complexity to defend against this bug. If we can
&gt; find a less complex solution that would be great. By default, Python will
&gt; terminate the process when it receives a SIGTERM. Therefore, the only way we
&gt; can get into trouble is whenever we register a SIGTERM handler. At the time,
&gt; only code in Tools/Scripts/webkitpy/common/interupt_debugging.py does this.
&gt; 
&gt; Any solution, like the one proposed, that subverts the multiprocessing
&gt; module by calling os.kill() is suspicious and seems like a bad idea.

Please note that attachment #324266 is not the patch I&apos;m proposing, I was sending that through EWS to confirm what EWS does to a patch when an exception is thrown.  Attachment #324064 is the relevant one.

Removing the SIGTERM handler would prevent the workers from being stuck.  However, I added this code so that we can actually debug webkitpy when it&apos;s stuck.  Without these signal handlers, a problem like this one is difficult to solve.

I spoke with Aakash today about this problem.  It sounds like what has happened is that for awhile, we&apos;ve had a problem where our Mac EWS bots get into a state where they run out of file handles.  When I attached a SIGTERM handler which saves to a file, machines in this state will now hang.  Currently, we restart our EWS patches every 10 patches to get machines out of this state.

After talking with Aakash, we will spend some time determining why we&apos;re leaking file handles before making any changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1362901</commentid>
    <comment_count>31</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2017-10-20 16:14:24 -0700</bug_when>
    <thetext>Marked patch 324266 as obsolete to get it out of EWS queues.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>323959</attachid>
            <date>2017-10-16 17:01:33 -0700</date>
            <delta_ts>2017-10-17 10:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171016170132.patch</filename>
            <type>text/plain</type>
            <size>2215</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzQ0NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xNiAgTWF1cmVlbiBEYXVtICA8
bWRhdW1AYXBwbGUuY29tPgogCiAgICAgICAgIElmIGFuIG9yaWdpbiBkb2Vzbid0IGhhdmUgZGF0
YWJhc2VzIGluIHRoZSBEYXRhYmFzZXMgdGFibGUgd2Ugc2hvdWxkIHN0aWxsIHJlbW92ZSBpdHMg
aW5mb3JtYXRpb24gZnJvbSBkaXNrIGluIERhdGFiYXNlVHJhY2tlcjo6ZGVsZXRlT3JpZ2luKCkK
SW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wucHkJ
KHJldmlzaW9uIDIyMzQyNikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3Nh
Z2VfcG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAtNDIsOCArNDIsMTEgQEAgaW50ZWFkLgogCiBp
bXBvcnQgY1BpY2tsZQogaW1wb3J0IGxvZ2dpbmcKK2ltcG9ydCBtYXRoCiBpbXBvcnQgbXVsdGlw
cm9jZXNzaW5nCitpbXBvcnQgb3MKIGltcG9ydCBRdWV1ZQoraW1wb3J0IHNpZ25hbAogaW1wb3J0
IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFjZWJhY2sKQEAgLTEzNyw3ICsxNDAsMTUgQEAg
Y2xhc3MgX01lc3NhZ2VQb29sKG9iamVjdCk6CiAgICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi5f
d29ya2VyczoKICAgICAgICAgICAgIGlmIHdvcmtlci5pc19hbGl2ZSgpOgogICAgICAgICAgICAg
ICAgIHdvcmtlci50ZXJtaW5hdGUoKQotICAgICAgICAgICAgICAgIHdvcmtlci5qb2luKCkKKwor
ICAgICAgICAjIElmIG5pY2UgdGVybWluYXRpb24gZG9lc24ndCB3b3JrLCBmb3JjZSB3b3JrZXIg
dG8gdGVybWluYXRlLgorICAgICAgICB0aW1lb3V0X3RhcmdldCA9IDYwICsgdGltZS50aW1lKCkK
KyAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLl93b3JrZXJzOgorICAgICAgICAgICAgaWYgd29y
a2VyLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAgICAgd29ya2VyLmpvaW4odGltZW91dD1tYXRo
LmNlaWwodGltZW91dF90YXJnZXQgLSB0aW1lLnRpbWUoKSkgaWYgdGltZW91dF90YXJnZXQgPiB0
aW1lLnRpbWUoKSBlbHNlIDApCisgICAgICAgICAgICBpZiB3b3JrZXIuaXNfYWxpdmUoKToKKyAg
ICAgICAgICAgICAgICBvcy5raWxsKHdvcmtlci5waWQsIHNpZ25hbC5TSUdLSUxMKQorCiAgICAg
ICAgIHNlbGYuX3dvcmtlcnMgPSBbXQogICAgICAgICBpZiBub3Qgc2VsZi5fcnVubmluZ19pbmxp
bmU6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byBnZXQgbXVsdGlwcm9j
ZXNzaW5nIHRvIG5vdCBsb2cgdHJhY2ViYWNrcyBkdXJpbmcgc2h1dGRvd24gOiguCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324022</attachid>
            <date>2017-10-17 10:07:39 -0700</date>
            <delta_ts>2017-10-17 13:33:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171017100739.patch</filename>
            <type>text/plain</type>
            <size>2452</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzU1MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xNyAgTmFlbCBPdWVkcmFvZ28g
IDxuYWVsLm91ZWRyYW9nb0BjcmYuY2Fub24uZnI+CiAKICAgICAgICAgW0dTdHJlYW1lcl1bR1RL
XVtXUEVdIHVwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGZhaWxzIHRvIGRldGVjdCBjaGFuZ2Vz
IGluIGluY2x1ZGVkIG1vZHVsZXNldCBmaWxlcwpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9jb21tb24vbWVzc2FnZV9wb29sLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkocmV2aXNpb24gMjIzNTUxKQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5CSh3b3JraW5nIGNvcHkpCkBA
IC00Miw4ICs0MiwxMSBAQCBpbnRlYWQuCiAKIGltcG9ydCBjUGlja2xlCiBpbXBvcnQgbG9nZ2lu
ZworaW1wb3J0IG1hdGgKIGltcG9ydCBtdWx0aXByb2Nlc3NpbmcKK2ltcG9ydCBvcwogaW1wb3J0
IFF1ZXVlCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lzCiBpbXBvcnQgdGltZQogaW1wb3J0IHRy
YWNlYmFjawpAQCAtMTM3LDcgKzE0MCwyMCBAQCBjbGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0KToK
ICAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLl93b3JrZXJzOgogICAgICAgICAgICAgaWYgd29y
a2VyLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAgICAgd29ya2VyLnRlcm1pbmF0ZSgpCi0gICAg
ICAgICAgICAgICAgd29ya2VyLmpvaW4oKQorCisgICAgICAgICMgQ2hlY2sgaWYgYWJvdmUgdGVy
bWluYXRpb24gd2FzIHN1Y2Nlc3NmdWwsIGZvcmNlIHdvcmtlciB0byB0ZXJtaW5hdGUgaWYgaXQg
d2Fzbid0LgorICAgICAgICB0aW1lb3V0X3RhcmdldCA9IDYwICsgdGltZS50aW1lKCkKKyAgICAg
ICAgZm9yIHdvcmtlciBpbiBzZWxmLl93b3JrZXJzOgorICAgICAgICAgICAgaWYgd29ya2VyLmlz
X2FsaXZlKCk6CisgICAgICAgICAgICAgICAgIyBUaGlzIHNldHMgYSB0aW1lb3V0IG9mIDYwIHNl
Y29uZHMgZm9yIGFsbCB3b3JrZXJzIHRvIGNsb3NlLCBpbnN0ZWFkIG9mIDYwIHNlY29uZHMgZm9y
IGVhY2ggd29ya2VyLgorICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAwCisgICAgICAgICAgICAg
ICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgICAgICBpZiB0aW1lb3V0
X3RhcmdldCA+IGN1cnJlbnRfdGltZToKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG1h
dGguY2VpbCh0aW1lb3V0X3RhcmdldCAtIGN1cnJlbnRfdGltZSkKKyAgICAgICAgICAgICAgICB3
b3JrZXIuam9pbih0aW1lb3V0PXRpbWVvdXQpCisgICAgICAgICAgICBpZiB3b3JrZXIuaXNfYWxp
dmUoKToKKyAgICAgICAgICAgICAgICBvcy5raWxsKHdvcmtlci5waWQsIHNpZ25hbC5TSUdLSUxM
KQorCiAgICAgICAgIHNlbGYuX3dvcmtlcnMgPSBbXQogICAgICAgICBpZiBub3Qgc2VsZi5fcnVu
bmluZ19pbmxpbmU6CiAgICAgICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjayB0byBnZXQg
bXVsdGlwcm9jZXNzaW5nIHRvIG5vdCBsb2cgdHJhY2ViYWNrcyBkdXJpbmcgc2h1dGRvd24gOigu
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324049</attachid>
            <date>2017-10-17 13:33:32 -0700</date>
            <delta_ts>2017-10-17 15:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171017133332.patch</filename>
            <type>text/plain</type>
            <size>2861</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzU3MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xNyAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5kIHJlbW92ZSBjb29raWUgcGFy
dGl0aW9uIGFjY29yZGluZ2x5IGluIGludGVybWVkaWFyeSByZWRpcmVjdCByZXF1ZXN0cwpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkocmV2
aXNpb24gMjIzNTcwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9w
b29sLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0MiwxMSBAQCBpbnRlYWQuCiAKIGltcG9y
dCBjUGlja2xlCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG1hdGgKIGltcG9ydCBtdWx0aXByb2Nl
c3NpbmcKK2ltcG9ydCBvcwogaW1wb3J0IFF1ZXVlCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lz
CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawpAQCAtMTM3LDcgKzE0MCwyMyBAQCBjbGFz
cyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLl93b3Jr
ZXJzOgogICAgICAgICAgICAgaWYgd29ya2VyLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAgICAg
d29ya2VyLnRlcm1pbmF0ZSgpCi0gICAgICAgICAgICAgICAgd29ya2VyLmpvaW4oKQorCisgICAg
ICAgICMgQ2hlY2sgaWYgYWJvdmUgdGVybWluYXRpb24gd2FzIHN1Y2Nlc3NmdWwsIGZvcmNlIHdv
cmtlcnMgdG8gdGVybWluYXRlIGlmIGl0IHdhc24ndC4KKyAgICAgICAgdGltZW91dF90YXJnZXQg
PSA2MCArIHRpbWUudGltZSgpCisgICAgICAgIGRpZF9raWxsID0gRmFsc2UKKyAgICAgICAgZm9y
IHdvcmtlciBpbiBzZWxmLl93b3JrZXJzOgorICAgICAgICAgICAgaWYgd29ya2VyLmlzX2FsaXZl
KCk6CisgICAgICAgICAgICAgICAgIyBUaGlzIHNldHMgYSB0aW1lb3V0IG9mIDYwIHNlY29uZHMg
Zm9yIGFsbCB3b3JrZXJzIHRvIGNsb3NlLCBpbnN0ZWFkIG9mIDYwIHNlY29uZHMgZm9yIGVhY2gg
d29ya2VyLgorICAgICAgICAgICAgICAgIHRpbWVvdXQgPSAwCisgICAgICAgICAgICAgICAgY3Vy
cmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgICAgICBpZiB0aW1lb3V0X3Rhcmdl
dCA+IGN1cnJlbnRfdGltZToKKyAgICAgICAgICAgICAgICAgICAgdGltZW91dCA9IG1hdGguY2Vp
bCh0aW1lb3V0X3RhcmdldCAtIGN1cnJlbnRfdGltZSkKKyAgICAgICAgICAgICAgICB3b3JrZXIu
am9pbih0aW1lb3V0PXRpbWVvdXQpCisKKyAgICAgICAgICAgIGlmIHdvcmtlci5pc19hbGl2ZSgp
OgorICAgICAgICAgICAgICAgIG9zLmtpbGwod29ya2VyLnBpZCwgc2lnbmFsLlNJR0tJTEwpCisg
ICAgICAgICAgICAgICAgZGlkX2tpbGwgPSBUcnVlCisKICAgICAgICAgc2VsZi5fd29ya2VycyA9
IFtdCiAgICAgICAgIGlmIG5vdCBzZWxmLl9ydW5uaW5nX2lubGluZToKICAgICAgICAgICAgICMg
RklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIGdldCBtdWx0aXByb2Nlc3NpbmcgdG8gbm90IGxvZyB0
cmFjZWJhY2tzIGR1cmluZyBzaHV0ZG93biA6KC4KQEAgLTE0OSw2ICsxNjgsOSBAQCBjbGFzcyBf
TWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgICAgICAgICBzZWxmLl9tZXNzYWdlc190b19t
YW5hZ2VyLmNsb3NlKCkKICAgICAgICAgICAgICAgICBzZWxmLl9tZXNzYWdlc190b19tYW5hZ2Vy
ID0gTm9uZQogCisgICAgICAgIGlmIGRpZF9raWxsOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdXb3JrZXJzIGZhaWxlZCB0byB0ZXJtaW5hdGUgZm9yIDYwIHNlY29uZHMgYWZ0ZXIgU0lH
VEVSTScpCisKICAgICBkZWYgX2xvZ19tZXNzYWdlcyhzZWxmLCBtZXNzYWdlcyk6CiAgICAgICAg
IGZvciBtZXNzYWdlIGluIG1lc3NhZ2VzOgogICAgICAgICAgICAgbG9nZ2luZy5yb290LmhhbmRs
ZShtZXNzYWdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324064</attachid>
            <date>2017-10-17 15:40:28 -0700</date>
            <delta_ts>2017-10-19 11:20:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171017154027.patch</filename>
            <type>text/plain</type>
            <size>2993</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzU3MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE3ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xNyAgSm9obiBXaWxhbmRlciAg
PHdpbGFuZGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5kIHJlbW92ZSBjb29raWUgcGFy
dGl0aW9uIGFjY29yZGluZ2x5IGluIGludGVybWVkaWFyeSByZWRpcmVjdCByZXF1ZXN0cwpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9wb29sLnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkocmV2
aXNpb24gMjIzNTcwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbWVzc2FnZV9w
b29sLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00Miw4ICs0MiwxMSBAQCBpbnRlYWQuCiAKIGltcG9y
dCBjUGlja2xlCiBpbXBvcnQgbG9nZ2luZworaW1wb3J0IG1hdGgKIGltcG9ydCBtdWx0aXByb2Nl
c3NpbmcKK2ltcG9ydCBvcwogaW1wb3J0IFF1ZXVlCitpbXBvcnQgc2lnbmFsCiBpbXBvcnQgc3lz
CiBpbXBvcnQgdGltZQogaW1wb3J0IHRyYWNlYmFjawpAQCAtMTM3LDcgKzE0MCwyMiBAQCBjbGFz
cyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgZm9yIHdvcmtlciBpbiBzZWxmLl93b3Jr
ZXJzOgogICAgICAgICAgICAgaWYgd29ya2VyLmlzX2FsaXZlKCk6CiAgICAgICAgICAgICAgICAg
d29ya2VyLnRlcm1pbmF0ZSgpCi0gICAgICAgICAgICAgICAgd29ya2VyLmpvaW4oKQorCisgICAg
ICAgICMgQ2hlY2sgaWYgYWJvdmUgdGVybWluYXRpb24gd2FzIHN1Y2Nlc3NmdWwsIGZvcmNlIHdv
cmtlcnMgdG8gdGVybWluYXRlIGlmIGl0IHdhc24ndC4KKyAgICAgICAgdGltZW91dF90YXJnZXQg
PSA2MCArIHRpbWUudGltZSgpCisgICAgICAgIGRpZF9raWxsID0gRmFsc2UKKyAgICAgICAgZm9y
IHdvcmtlciBpbiBzZWxmLl93b3JrZXJzOgorICAgICAgICAgICAgIyBUaGlzIHNldHMgYSB0aW1l
b3V0IG9mIDYwIHNlY29uZHMgZm9yIGFsbCB3b3JrZXJzIHRvIGNsb3NlLCBpbnN0ZWFkIG9mIDYw
IHNlY29uZHMgZm9yIGVhY2ggd29ya2VyLgorICAgICAgICAgICAgIyBJZiB3b3JrZXJzIGFyZSBh
bGl2ZSA2MCBzZWNvbmRzIGFmdGVyIGEgU0lHVEVSTSwgU0lHVEVSTSBoYXMgZmFpbGVkLCBubyBu
ZWVkIHRvIGV2ZW4gYXR0ZW1wdCBhIGpvaW4uCisgICAgICAgICAgICBjdXJyZW50X3RpbWUgPSB0
aW1lLnRpbWUoKQorICAgICAgICAgICAgaWYgd29ya2VyLmlzX2FsaXZlKCkgYW5kIHRpbWVvdXRf
dGFyZ2V0ID4gY3VycmVudF90aW1lOgorICAgICAgICAgICAgICAgIHdvcmtlci5qb2luKHRpbWVv
dXQ9bWF0aC5jZWlsKHRpbWVvdXRfdGFyZ2V0IC0gY3VycmVudF90aW1lKSkKKworICAgICAgICAg
ICAgaWYgd29ya2VyLmlzX2FsaXZlKCk6CisgICAgICAgICAgICAgICAgX2xvZy5jcml0aWNhbCgn
e30gZmFpbGVkIHRvIHJlc3BvbmQgdG8gU0lHVEVSTSwgaXNzdWUgU0lHS0lMTCBpbnN0ZWFkJyku
Zm9ybWF0KHdvcmtlci5uYW1lKQorICAgICAgICAgICAgICAgIG9zLmtpbGwod29ya2VyLnBpZCwg
c2lnbmFsLlNJR0tJTEwpCisgICAgICAgICAgICAgICAgZGlkX2tpbGwgPSBUcnVlCisKICAgICAg
ICAgc2VsZi5fd29ya2VycyA9IFtdCiAgICAgICAgIGlmIG5vdCBzZWxmLl9ydW5uaW5nX2lubGlu
ZToKICAgICAgICAgICAgICMgRklYTUU6IFRoaXMgaXMgYSBoYWNrIHRvIGdldCBtdWx0aXByb2Nl
c3NpbmcgdG8gbm90IGxvZyB0cmFjZWJhY2tzIGR1cmluZyBzaHV0ZG93biA6KC4KQEAgLTE0OSw2
ICsxNjcsOSBAQCBjbGFzcyBfTWVzc2FnZVBvb2wob2JqZWN0KToKICAgICAgICAgICAgICAgICBz
ZWxmLl9tZXNzYWdlc190b19tYW5hZ2VyLmNsb3NlKCkKICAgICAgICAgICAgICAgICBzZWxmLl9t
ZXNzYWdlc190b19tYW5hZ2VyID0gTm9uZQogCisgICAgICAgIGlmIGRpZF9raWxsOgorICAgICAg
ICAgICAgcmFpc2UgRXhjZXB0aW9uKCdXb3JrZXJzIGZhaWxlZCB0byB0ZXJtaW5hdGUgZm9yIDYw
IHNlY29uZHMgYWZ0ZXIgU0lHVEVSTScpCisKICAgICBkZWYgX2xvZ19tZXNzYWdlcyhzZWxmLCBt
ZXNzYWdlcyk6CiAgICAgICAgIGZvciBtZXNzYWdlIGluIG1lc3NhZ2VzOgogICAgICAgICAgICAg
bG9nZ2luZy5yb290LmhhbmRsZShtZXNzYWdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324252</attachid>
            <date>2017-10-19 11:20:15 -0700</date>
            <delta_ts>2017-10-19 16:43:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171019112015.patch</filename>
            <type>text/plain</type>
            <size>2967</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzY5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEb24ndCBleHBvc2UgcmF3IEhUTUwgaW4gcGFz
dGVib2FyZCB0byB0aGUgd2ViIGNvbnRlbnQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL21lc3NhZ2VfcG9vbC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wucHkJKHJldmlzaW9uIDIyMzY5MSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAt
NDIsOCArNDIsMTEgQEAgaW50ZWFkLgogCiBpbXBvcnQgY1BpY2tsZQogaW1wb3J0IGxvZ2dpbmcK
K2ltcG9ydCBtYXRoCiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCitpbXBvcnQgb3MKIGltcG9ydCBR
dWV1ZQoraW1wb3J0IHNpZ25hbAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFj
ZWJhY2sKQEAgLTEzNyw3ICsxNDAsMjIgQEAgY2xhc3MgX01lc3NhZ2VQb29sKG9iamVjdCk6CiAg
ICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi5fd29ya2VyczoKICAgICAgICAgICAgIGlmIHdvcmtl
ci5pc19hbGl2ZSgpOgogICAgICAgICAgICAgICAgIHdvcmtlci50ZXJtaW5hdGUoKQotICAgICAg
ICAgICAgICAgIHdvcmtlci5qb2luKCkKKworICAgICAgICAjIENoZWNrIGlmIGFib3ZlIHRlcm1p
bmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBmb3JjZSB3b3JrZXJzIHRvIHRlcm1pbmF0ZSBpZiBpdCB3
YXNuJ3QuCisgICAgICAgIHRpbWVvdXRfdGFyZ2V0ID0gNjAgKyB0aW1lLnRpbWUoKQorICAgICAg
ICBkaWRfa2lsbCA9IEZhbHNlCisgICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi5fd29ya2VyczoK
KyAgICAgICAgICAgICMgVGhpcyBzZXRzIGEgdGltZW91dCBvZiA2MCBzZWNvbmRzIGZvciBhbGwg
d29ya2VycyB0byBjbG9zZSwgaW5zdGVhZCBvZiA2MCBzZWNvbmRzIGZvciBlYWNoIHdvcmtlci4K
KyAgICAgICAgICAgICMgSWYgd29ya2VycyBhcmUgYWxpdmUgNjAgc2Vjb25kcyBhZnRlciBhIFNJ
R1RFUk0sIFNJR1RFUk0gaGFzIGZhaWxlZCwgbm8gbmVlZCB0byBldmVuIGF0dGVtcHQgYSBqb2lu
LgorICAgICAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIGlm
IHdvcmtlci5pc19hbGl2ZSgpIGFuZCB0aW1lb3V0X3RhcmdldCA+IGN1cnJlbnRfdGltZToKKyAg
ICAgICAgICAgICAgICB3b3JrZXIuam9pbih0aW1lb3V0PW1hdGguY2VpbCh0aW1lb3V0X3Rhcmdl
dCAtIGN1cnJlbnRfdGltZSkpCisKKyAgICAgICAgICAgIGlmIHdvcmtlci5pc19hbGl2ZSgpOgor
ICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJ3t9IGZhaWxlZCB0byByZXNwb25kIHRvIFNJ
R1RFUk0sIGlzc3VlIFNJR0tJTEwgaW5zdGVhZCcuZm9ybWF0KHdvcmtlci5uYW1lKSkKKyAgICAg
ICAgICAgICAgICBvcy5raWxsKHdvcmtlci5waWQsIHNpZ25hbC5TSUdLSUxMKQorICAgICAgICAg
ICAgICAgIGRpZF9raWxsID0gVHJ1ZQorCiAgICAgICAgIHNlbGYuX3dvcmtlcnMgPSBbXQogICAg
ICAgICBpZiBub3Qgc2VsZi5fcnVubmluZ19pbmxpbmU6CiAgICAgICAgICAgICAjIEZJWE1FOiBU
aGlzIGlzIGEgaGFjayB0byBnZXQgbXVsdGlwcm9jZXNzaW5nIHRvIG5vdCBsb2cgdHJhY2ViYWNr
cyBkdXJpbmcgc2h1dGRvd24gOiguCkBAIC0xNDksNiArMTY3LDkgQEAgY2xhc3MgX01lc3NhZ2VQ
b29sKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fbWVzc2FnZXNfdG9fbWFuYWdlci5j
bG9zZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5fbWVzc2FnZXNfdG9fbWFuYWdlciA9IE5vbmUK
IAorICAgICAgICBpZiBkaWRfa2lsbDoKKyAgICAgICAgICAgIHJhaXNlIEV4Y2VwdGlvbignV29y
a2VycyBmYWlsZWQgdG8gdGVybWluYXRlIGZvciA2MCBzZWNvbmRzIGFmdGVyIFNJR1RFUk0nKQor
CiAgICAgZGVmIF9sb2dfbWVzc2FnZXMoc2VsZiwgbWVzc2FnZXMpOgogICAgICAgICBmb3IgbWVz
c2FnZSBpbiBtZXNzYWdlczoKICAgICAgICAgICAgIGxvZ2dpbmcucm9vdC5oYW5kbGUobWVzc2Fn
ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>324266</attachid>
            <date>2017-10-19 13:06:47 -0700</date>
            <delta_ts>2017-10-20 16:09:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-178368-20171019130646.patch</filename>
            <type>text/plain</type>
            <size>2975</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIyMzY5MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE3LTEwLTE5ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICB3ZWJraXRweTogRm9yY2Ugd29ya2VycyB0byBleGl0IGlmIHRoZXkgZG8g
bm90IGRvIHNvIGdyYWNlZnVsbHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3ODM2OAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzUwMTg5Mjc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBydW5u
aW5nIGxheW91dCB0ZXN0cywgc29tZXRpbWVzIHdvcmtlcnMgZ2V0IHN0dWNrIGluIEVXUy4gVGhp
cyBjYW4gbWFrZSBFV1MKKyAgICAgICAgYm90cyBoYW5nIGZvciBob3VycyBvciBldmVuIGRheXMu
IFdlIHNob3VsZCBmb3JjZSB3b3JrZXJzIHRvIGNsb3NlIGlmIHRoZXkndmUKKyAgICAgICAgcmVj
ZWl2ZWQgYSBTSUdURVJNIGFuZCBoYXZlIG5vdCBjbG9zZWQgYWZ0ZXIgNjAgc2Vjb25kcy4KKwor
ICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weToKKyAgICAg
ICAgKF9NZXNzYWdlUG9vbC5fY2xvc2UpOiBJZiBhIHdvcmtlciBmYWlscyB0byB0ZXJtaW5hdGUg
YWZ0ZXIgNjAgc2Vjb25kcywga2lsbCBpdC4KKwogMjAxNy0xMC0xOCAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEb24ndCBleHBvc2UgcmF3IEhUTUwgaW4gcGFz
dGVib2FyZCB0byB0aGUgd2ViIGNvbnRlbnQKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL21lc3NhZ2VfcG9vbC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9tZXNzYWdlX3Bvb2wucHkJKHJldmlzaW9uIDIyMzY5MSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL21lc3NhZ2VfcG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAt
NDIsOCArNDIsMTEgQEAgaW50ZWFkLgogCiBpbXBvcnQgY1BpY2tsZQogaW1wb3J0IGxvZ2dpbmcK
K2ltcG9ydCBtYXRoCiBpbXBvcnQgbXVsdGlwcm9jZXNzaW5nCitpbXBvcnQgb3MKIGltcG9ydCBR
dWV1ZQoraW1wb3J0IHNpZ25hbAogaW1wb3J0IHN5cwogaW1wb3J0IHRpbWUKIGltcG9ydCB0cmFj
ZWJhY2sKQEAgLTEzNyw3ICsxNDAsMjIgQEAgY2xhc3MgX01lc3NhZ2VQb29sKG9iamVjdCk6CiAg
ICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi5fd29ya2VyczoKICAgICAgICAgICAgIGlmIHdvcmtl
ci5pc19hbGl2ZSgpOgogICAgICAgICAgICAgICAgIHdvcmtlci50ZXJtaW5hdGUoKQotICAgICAg
ICAgICAgICAgIHdvcmtlci5qb2luKCkKKworICAgICAgICAjIENoZWNrIGlmIGFib3ZlIHRlcm1p
bmF0aW9uIHdhcyBzdWNjZXNzZnVsLCBmb3JjZSB3b3JrZXJzIHRvIHRlcm1pbmF0ZSBpZiBpdCB3
YXNuJ3QuCisgICAgICAgIHRpbWVvdXRfdGFyZ2V0ID0gNjAgKyB0aW1lLnRpbWUoKQorICAgICAg
ICBkaWRfa2lsbCA9IEZhbHNlCisgICAgICAgIGZvciB3b3JrZXIgaW4gc2VsZi5fd29ya2VyczoK
KyAgICAgICAgICAgICMgVGhpcyBzZXRzIGEgdGltZW91dCBvZiA2MCBzZWNvbmRzIGZvciBhbGwg
d29ya2VycyB0byBjbG9zZSwgaW5zdGVhZCBvZiA2MCBzZWNvbmRzIGZvciBlYWNoIHdvcmtlci4K
KyAgICAgICAgICAgICMgSWYgd29ya2VycyBhcmUgYWxpdmUgNjAgc2Vjb25kcyBhZnRlciBhIFNJ
R1RFUk0sIFNJR1RFUk0gaGFzIGZhaWxlZCwgbm8gbmVlZCB0byBldmVuIGF0dGVtcHQgYSBqb2lu
LgorICAgICAgICAgICAgY3VycmVudF90aW1lID0gdGltZS50aW1lKCkKKyAgICAgICAgICAgIGlm
IHdvcmtlci5pc19hbGl2ZSgpIGFuZCB0aW1lb3V0X3RhcmdldCA+IGN1cnJlbnRfdGltZToKKyAg
ICAgICAgICAgICAgICB3b3JrZXIuam9pbih0aW1lb3V0PW1hdGguY2VpbCh0aW1lb3V0X3Rhcmdl
dCAtIGN1cnJlbnRfdGltZSkpCisKKyAgICAgICAgICAgIGlmIHdvcmtlci5pc19hbGl2ZSgpOgor
ICAgICAgICAgICAgICAgIF9sb2cuY3JpdGljYWwoJ3t9IGZhaWxlZCB0byByZXNwb25kIHRvIFNJ
R1RFUk0sIGlzc3VlIFNJR0tJTEwgaW5zdGVhZCcuZm9ybWF0KHdvcmtlci5uYW1lKSkKKyAgICAg
ICAgICAgICAgICBvcy5raWxsKHdvcmtlci5waWQsIHNpZ25hbC5TSUdLSUxMKQorICAgICAgICAg
ICAgICAgIGRpZF9raWxsID0gVHJ1ZQorCiAgICAgICAgIHNlbGYuX3dvcmtlcnMgPSBbXQogICAg
ICAgICBpZiBub3Qgc2VsZi5fcnVubmluZ19pbmxpbmU6CiAgICAgICAgICAgICAjIEZJWE1FOiBU
aGlzIGlzIGEgaGFjayB0byBnZXQgbXVsdGlwcm9jZXNzaW5nIHRvIG5vdCBsb2cgdHJhY2ViYWNr
cyBkdXJpbmcgc2h1dGRvd24gOiguCkBAIC0xNDksNiArMTY3LDkgQEAgY2xhc3MgX01lc3NhZ2VQ
b29sKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgc2VsZi5fbWVzc2FnZXNfdG9fbWFuYWdlci5j
bG9zZSgpCiAgICAgICAgICAgICAgICAgc2VsZi5fbWVzc2FnZXNfdG9fbWFuYWdlciA9IE5vbmUK
IAorICAgICAgICBpZiBkaWRfa2lsbCBvciBUcnVlOgorICAgICAgICAgICAgcmFpc2UgRXhjZXB0
aW9uKCdXb3JrZXJzIGZhaWxlZCB0byB0ZXJtaW5hdGUgZm9yIDYwIHNlY29uZHMgYWZ0ZXIgU0lH
VEVSTScpCisKICAgICBkZWYgX2xvZ19tZXNzYWdlcyhzZWxmLCBtZXNzYWdlcyk6CiAgICAgICAg
IGZvciBtZXNzYWdlIGluIG1lc3NhZ2VzOgogICAgICAgICAgICAgbG9nZ2luZy5yb290LmhhbmRs
ZShtZXNzYWdlKQo=
</data>
<flag name="commit-queue"
          id="343910"
          type_id="3"
          status="-"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>