<?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>61847</bug_id>
          
          <creation_ts>2011-06-01 01:48:01 -0700</creation_ts>
          <short_desc>Worker may not be stopped after LT.</short_desc>
          <delta_ts>2011-06-03 12:44:03 -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>
          <dependson>61965</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hao Zheng">zhenghao</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>413231</commentid>
    <comment_count>0</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-06-01 01:48:01 -0700</bug_when>
    <thetext>In worker.py, only call to cleanup() is in __del__, which is not guaranteed to be called when the python interpreter exits. And self._driver is not killed after LT. After many runs of LT, there will be many zombie processes of driver. I think we need to run cleanup() explicitly for worker.

I&apos;m not sure where is better to put cleanup():

    def handle_stop(self, src):
        self._done = True
**      self.cleanup()

Or,

    def run(self, port):
        self.safe_init(port)

        exception_msg = &quot;&quot;
        _log.debug(&quot;%s starting&quot; % self._name)

        try:
            self._worker_connection.run_message_loop()
            if not self.is_done():
                raise AssertionError(&quot;%s: ran out of messages in worker queue.&quot;
                                     % self._name)
        except KeyboardInterrupt:
            exception_msg = &quot;, interrupted&quot;
        except:
            exception_msg = &quot;, exception raised&quot;
        finally:
            _log.debug(&quot;%s done%s&quot; % (self._name, exception_msg))
            if exception_msg:
                exception_type, exception_value, exception_traceback = sys.exc_info()
                stack_utils.log_traceback(_log.debug, exception_traceback)
                # FIXME: Figure out how to send a message with a traceback.
                self._worker_connection.post_message(&apos;exception&apos;,
                    (exception_type, exception_value, None))
            self._worker_connection.post_message(&apos;done&apos;)
**          self.cleanup()

I&apos;d like to hear your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413475</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-01 10:34:28 -0700</bug_when>
    <thetext>cleanup() should be getting called at the end of run(). I&apos;m pretty sure it did at some point; I wonder if I deleted it?

Feel free to add a patch for this, or I&apos;ll do so this afternoon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413884</commentid>
    <comment_count>2</comment_count>
      <attachid>95716</attachid>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-06-01 21:15:49 -0700</bug_when>
    <thetext>Created attachment 95716
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414366</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 12:58:55 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 95716:

fast/history/history-subframe-with-name.html bug 51039 (author: mihaip@chromium.org)
http/tests/websocket/tests/error-detect.html bug 54012 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414371</commentid>
    <comment_count>4</comment_count>
      <attachid>95716</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 13:01:14 -0700</bug_when>
    <thetext>Comment on attachment 95716
Proposed patch.

Clearing flags on attachment: 95716

Committed r87946: &lt;http://trac.webkit.org/changeset/87946&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414372</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 13:01:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414458</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-02 14:40:34 -0700</bug_when>
    <thetext>This broke NRWT in multiple configurations.  Here&apos;s an example:

http://build.chromium.org/p/chromium.webkit/builders/Webkit%20Linux%20%28dbg%29%281%29/builds/6754/steps/webkit_tests/logs/stdio


2011-06-02 13:35:14,919 8291 manager.py:672 DEBUG No wedged threads
2011-06-02 13:35:15,419 8291 manager.py:690 INFO Exception raised, exiting
Traceback (most recent call last):
  File &quot;/mnt/data/b/build/slave/Webkit_Linux__dbg__1_/build/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 460, in &lt;module&gt;
    sys.exit(main())
  File &quot;/mnt/data/b/build/slave/Webkit_Linux__dbg__1_/build/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 455, in main
    return run(port_obj, options, args)
  File &quot;/mnt/data/b/build/slave/Webkit_Linux__dbg__1_/build/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py&quot;, line 118, in run
    num_unexpected_results = manager.run(result_summary)
  File &quot;/mnt/data/b/build/slave/Webkit_Linux__dbg__1_/build/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py&quot;, line 779, in run
    self._run_tests(self._test_files_list, result_summary))
  File &quot;/mnt/data/b/build/slave/Webkit_Linux__dbg__1_/build/src/third_party/WebKit/Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py&quot;, line 678, in _run_tests
    assert not worker_state.worker_connection.is_alive()
AssertionError
program finished with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414604</commentid>
    <comment_count>7</comment_count>
      <attachid>95845</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-02 19:17:46 -0700</bug_when>
    <thetext>Created attachment 95845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414622</commentid>
    <comment_count>8</comment_count>
    <who name="Hao Zheng">zhenghao</who>
    <bug_when>2011-06-02 20:13:12 -0700</bug_when>
    <thetext>Thanks for your help. Sorry to break the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414962</commentid>
    <comment_count>9</comment_count>
      <attachid>95845</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-03 09:53:28 -0700</bug_when>
    <thetext>Comment on attachment 95845
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py:681
&gt; +                        _log.error(&apos;Worked %d did not exit in time. Aborting.&apos; % worker_state.number)
&gt; +                        raise AssertionError(&apos;Worker %d did not exit in time&apos; % worker_state.number)

Should we raise an Assertion here or just log the error and try to keep going?

&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/worker.py:150
&gt; +        self.kill_driver()
&gt; +        self.stop_servers_with_lock()

Nit: We may want to remove the _driver and _has_http_lock checks in the other call sites (in a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414969</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-03 10:01:43 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 95845 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95845&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py:681
&gt; &gt; +                        _log.error(&apos;Worked %d did not exit in time. Aborting.&apos; % worker_state.number)
&gt; &gt; +                        raise AssertionError(&apos;Worker %d did not exit in time&apos; % worker_state.number)
&gt; 
&gt; Should we raise an Assertion here or just log the error and try to keep going?
&gt; 

Good question. I&apos;m not actually sure what the end result of the run will be in either case (hung process or process that eventually exits when the slow thread/process exits). I would prefer to leave it as an assertion for now just to help identify if it actually occurs.

&gt; &gt; Tools/Scripts/webkitpy/layout_tests/layout_package/worker.py:150
&gt; &gt; +        self.kill_driver()
&gt; &gt; +        self.stop_servers_with_lock()
&gt; 
&gt; Nit: We may want to remove the _driver and _has_http_lock checks in the other call sites (in a separate patch).

will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415027</commentid>
    <comment_count>11</comment_count>
      <attachid>95845</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-03 11:29:41 -0700</bug_when>
    <thetext>Comment on attachment 95845
Patch

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py:681
&gt;&gt;&gt; +                        raise AssertionError(&apos;Worker %d did not exit in time&apos; % worker_state.number)
&gt;&gt; 
&gt;&gt; Should we raise an Assertion here or just log the error and try to keep going?
&gt; 
&gt; Good question. I&apos;m not actually sure what the end result of the run will be in either case (hung process or process that eventually exits when the slow thread/process exits). I would prefer to leave it as an assertion for now just to help identify if it actually occurs.

I think this is OK, but In general I think we should try to have the bots keep going as much as possible.  If the script crashes, it causes problems for the gardener who then needs to rollback and wait for the bots to cycle an extra time.  The downside for you is much smaller: you just need to land the patch manually and watch the bots as they cycle to see if an error is logged.

You might want to try landing this during non-busy hours or coordinate the landing with the gardener.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415095</commentid>
    <comment_count>12</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-03 12:32:23 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 95845 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95845&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/webkitpy/layout_tests/layout_package/manager.py:681
&gt; &gt;&gt;&gt; +                        raise AssertionError(&apos;Worker %d did not exit in time&apos; % worker_state.number)
&gt; &gt;&gt; 
&gt; &gt;&gt; Should we raise an Assertion here or just log the error and try to keep going?
&gt; &gt; 
&gt; &gt; Good question. I&apos;m not actually sure what the end result of the run will be in either case (hung process or process that eventually exits when the slow thread/process exits). I would prefer to leave it as an assertion for now just to help identify if it actually occurs.
&gt; 
&gt; I think this is OK, but In general I think we should try to have the bots keep going as much as possible.  If the script crashes, it causes problems for the gardener who then needs to rollback and wait for the bots to cycle an extra time.  The downside for you is much smaller: you just need to land the patch manually and watch the bots as they cycle to see if an error is logged.
&gt; 
&gt; You might want to try landing this during non-busy hours or coordinate the landing with the gardener.

Oh, I&apos;m not worried about this patch in particular being broken, I&apos;m worried about something happening down the road that causes this to fail.

That said, I just tested it, and raising the assert won&apos;t by itself cause the program to exit (since there are still child processes running), so there&apos;s not much effective difference here between asserting and logging an error. I&apos;ll change this to a log for now.

There&apos;s also two typos in that line that are real bugs, so I&apos;ll post another patch that actually works :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415097</commentid>
    <comment_count>13</comment_count>
      <attachid>95947</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-03 12:34:24 -0700</bug_when>
    <thetext>Created attachment 95947
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415104</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-03 12:44:03 -0700</bug_when>
    <thetext>Committed r88040: &lt;http://trac.webkit.org/changeset/88040&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95716</attachid>
            <date>2011-06-01 21:15:49 -0700</date>
            <delta_ts>2011-06-02 19:17:43 -0700</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>worker_cleanup.patch</filename>
            <type>text/plain</type>
            <size>1508</size>
            <attacher name="Hao Zheng">zhenghao</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDg3ODc2KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTEtMDYtMDEgIEhhbyBaaGVuZyAgPHpoZW5naGFvQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWxsIGNs
ZWFudXAoKSBleHBsaWNpdGx5IGF0IHRoZSBlbmQgb2Ygd29ya2VyLnJ1bigpLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NDcKKworICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5weToK
KwogMjAxMS0wNi0wMSAgRGlyayBQcmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5w
eQkocmV2aXNpb24gODc4NzYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9sYXlvdXRfcGFja2FnZS93b3JrZXIucHkJKHdvcmtpbmcgY29weSkKQEAgLTExMCw2ICsxMTAs
NyBAQCBjbGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJfYnJva2VyLkFic3RyCiAgICAgICAgICAg
ICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24ucG9zdF9tZXNzYWdlKCdleGNlcHRpb24nLAog
ICAgICAgICAgICAgICAgICAgICAoZXhjZXB0aW9uX3R5cGUsIGV4Y2VwdGlvbl92YWx1ZSwgTm9u
ZSkpCiAgICAgICAgICAgICBzZWxmLl93b3JrZXJfY29ubmVjdGlvbi5wb3N0X21lc3NhZ2UoJ2Rv
bmUnKQorICAgICAgICAgICAgc2VsZi5jbGVhbnVwKCkKIAogICAgIGRlZiBoYW5kbGVfdGVzdF9s
aXN0KHNlbGYsIHNyYywgbGlzdF9uYW1lLCB0ZXN0X2xpc3QpOgogICAgICAgICBpZiBsaXN0X25h
bWUgPT0gInRlc3RzX3RvX2h0dHBfbG9jayI6CkBAIC0xNDQsNiArMTQ1LDcgQEAgY2xhc3MgV29y
a2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0cgogICAgICAgICBzZWxmLmNsZWFuX3VwX2Fm
dGVyX3Rlc3QodGVzdF9pbnB1dCwgcmVzdWx0KQogCiAgICAgZGVmIGNsZWFudXAoc2VsZik6Cisg
ICAgICAgIF9sb2cuZGVidWcoIkNsZWFuaW5nIHVwICVzIiAlIHNlbGYuX25hbWUpCiAgICAgICAg
IGlmIHNlbGYuX2RyaXZlcjoKICAgICAgICAgICAgIHNlbGYua2lsbF9kcml2ZXIoKQogICAgICAg
ICBpZiBzZWxmLl9oYXNfaHR0cF9sb2NrOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95845</attachid>
            <date>2011-06-02 19:17:46 -0700</date>
            <delta_ts>2011-06-03 12:34:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61847-20110602191745.patch</filename>
            <type>text/plain</type>
            <size>3844</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc5NjcKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2YzNjZjViZmY1ZTQ2MjllY2QzY2I3MDI1NWZhMTdkZThl
MDFlZDYwLi4yNDA1YWE1NDYyMzU5ZWNkNThlNjEzNzc0N2I2NThhOTgzNzU4YWNhIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMjMg
QEAKIDIwMTEtMDYtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29ya2VyIG1heSBu
b3QgYmUgc3RvcHBlZCBhZnRlciBMVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxODQ3CisKKyAgICAgICAgUmUtc3VibWl0IGEgdmFyaWFudCBvZiB0
aGUgZmlyc3QgZml4IGZvciB0aGlzIGJ1Zy4gSXQncyBwb3NzaWJsZQorICAgICAgICB0aGF0IGFj
dHVhbGx5IGNhbGxpbmcgY2xlYW51cCgpIGluIHRoZSB3b3JrZXIgdGhyZWFkcyB3YXMgdGFraW5n
CisgICAgICAgIHRvbyBsb25nIGFuZCB3ZSB0cmlnZ2VyZWQgdGhlIGFzc2VydGlvbnMgaW4gdGhl
IG1hbmFnZXIgdGhyZWFkLgorCisgICAgICAgIEkndmUgYnVtcGVkIHVwIHRoZSB0aW1lb3V0IGlu
IHRoZSBtYW5hZ2VyIGFuZCBhZGRlZCBiZXR0ZXIKKyAgICAgICAgZGlhZ25vc3RpY3MuIEkgYWxz
byBjbGVhbmVkIHVwIHRoZSBjbGVhbnVwKCkgY29kZSBhIGJpdCBiZWNhdXNlCisgICAgICAgIHRo
ZXJlIHdhcyBzb21lIHVubmVjZXNzYXJ5IGlmLWNoZWNrcy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5
OgorCisyMDExLTA2LTAyICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgorCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCiAKICAgICAgICAgTlJXVCBuZWVkcyBhIHdh
eSB0byBsb2cgdG8gYSBmaWxlIHdpdGhvdXQgaW5jbHVkaW5nIGJhY2tzcGFjZXMgd2l0aG91dCBu
ZWVkaW5nIC0tdmVyYm9zZQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKaW5kZXggNzViY2UwZDA1
ZjQ5MTgyMmI5NTk0YjhjMDg1MzQwM2Q3ZTY3NWRkYi4uMjhlN2RjMTcwNWFjZGY2Y2FlZmExZjdh
OTM5MDQzMTA3NDJhZjQ5ZCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CkBAIC02NzQsOCAr
Njc0LDExIEBAIGNsYXNzIE1hbmFnZXI6CiAgICAgICAgICAgICAjIE1ha2Ugc3VyZSBhbGwgb2Yg
dGhlIHdvcmtlcnMgaGF2ZSBzaHV0IGRvd24gKGlmIHBvc3NpYmxlKS4KICAgICAgICAgICAgIGZv
ciB3b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKToKICAgICAgICAg
ICAgICAgICBpZiBub3Qgd29ya2VyX3N0YXRlLndlZGdlZCBhbmQgd29ya2VyX3N0YXRlLndvcmtl
cl9jb25uZWN0aW9uLmlzX2FsaXZlKCk6Ci0gICAgICAgICAgICAgICAgICAgIHdvcmtlcl9zdGF0
ZS53b3JrZXJfY29ubmVjdGlvbi5qb2luKDAuNSkKLSAgICAgICAgICAgICAgICAgICAgYXNzZXJ0
IG5vdCB3b3JrZXJfc3RhdGUud29ya2VyX2Nvbm5lY3Rpb24uaXNfYWxpdmUoKQorICAgICAgICAg
ICAgICAgICAgICBfbG9nLndhcm5pbmcoJ1dhaXRpbmcgZm9yIHdvcmtlciAlZCB0byBleGl0JyAl
IHdvcmtlcl9zdGF0ZS5udW1iZXIpCisgICAgICAgICAgICAgICAgICAgIHdvcmtlcl9zdGF0ZS53
b3JrZXJfY29ubmVjdGlvbi5qb2luKDUuMCkKKyAgICAgICAgICAgICAgICAgICAgaWYgd29ya2Vy
X3N0YXRlLndvcmtfY29ubmVjdGlvbi5pc19hbGl2ZToKKyAgICAgICAgICAgICAgICAgICAgICAg
IF9sb2cuZXJyb3IoJ1dvcmtlZCAlZCBkaWQgbm90IGV4aXQgaW4gdGltZS4gQWJvcnRpbmcuJyAl
IHdvcmtlcl9zdGF0ZS5udW1iZXIpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBBc3Nl
cnRpb25FcnJvcignV29ya2VyICVkIGRpZCBub3QgZXhpdCBpbiB0aW1lJyAlIHdvcmtlcl9zdGF0
ZS5udW1iZXIpCiAKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0OgogICAgICAgICAg
ICAgX2xvZy5pbmZvKCJJbnRlcnJ1cHRlZCwgZXhpdGluZyIpCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93b3JrZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93b3JrZXIu
cHkKaW5kZXggNmZmM2YxMjU4YTIwZTc5N2I1MTJkNmY1MjE5ZTk5NmViZTQzZjc4ZC4uZTk5ZWZh
Mzk3YzkxMzA5MTRjNjE3MWY3ZTFiNTE5YmZkNTljMzA0MCAxMDA2NDQKLS0tIGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtl
ci5weQpAQCAtMTEwLDYgKzExMCw3IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dvcmtlcl9icm9r
ZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICAgICAgICAgIHNlbGYuX3dvcmtlcl9jb25uZWN0
aW9uLnBvc3RfbWVzc2FnZSgnZXhjZXB0aW9uJywKICAgICAgICAgICAgICAgICAgICAgKGV4Y2Vw
dGlvbl90eXBlLCBleGNlcHRpb25fdmFsdWUsIE5vbmUpKQogICAgICAgICAgICAgc2VsZi5fd29y
a2VyX2Nvbm5lY3Rpb24ucG9zdF9tZXNzYWdlKCdkb25lJykKKyAgICAgICAgICAgIHNlbGYuY2xl
YW51cCgpCiAKICAgICBkZWYgaGFuZGxlX3Rlc3RfbGlzdChzZWxmLCBzcmMsIGxpc3RfbmFtZSwg
dGVzdF9saXN0KToKICAgICAgICAgaWYgbGlzdF9uYW1lID09ICJ0ZXN0c190b19odHRwX2xvY2si
OgpAQCAtMTQ0LDEzICsxNDUsMTMgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tl
ci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgIHNlbGYuY2xlYW5fdXBfYWZ0ZXJfdGVzdCh0ZXN0
X2lucHV0LCByZXN1bHQpCiAKICAgICBkZWYgY2xlYW51cChzZWxmKToKLSAgICAgICAgaWYgc2Vs
Zi5fZHJpdmVyOgotICAgICAgICAgICAgc2VsZi5raWxsX2RyaXZlcigpCi0gICAgICAgIGlmIHNl
bGYuX2hhc19odHRwX2xvY2s6Ci0gICAgICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xv
Y2soKQorICAgICAgICBfbG9nLmRlYnVnKCJjbGVhbmluZyB1cCIpCisgICAgICAgIHNlbGYua2ls
bF9kcml2ZXIoKQorICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQogICAgICAg
ICBpZiBzZWxmLl90ZXN0c19ydW5fZmlsZToKICAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9m
aWxlLmNsb3NlKCkKICAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gTm9uZQorICAg
ICAgICBfbG9nLmRlYnVnKCJkb25lIGNsZWFuaW5nIHVwIikKIAogICAgIGRlZiB0aW1lb3V0KHNl
bGYsIHRlc3RfaW5wdXQpOgogICAgICAgICAiIiJDb21wdXRlIHRoZSBhcHByb3ByaWF0ZSB0aW1l
b3V0IHZhbHVlIGZvciBhIHRlc3QuIiIiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95947</attachid>
            <date>2011-06-03 12:34:24 -0700</date>
            <delta_ts>2011-06-03 12:42:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61847-20110603123423.patch</filename>
            <type>text/plain</type>
            <size>3634</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODgwMzgKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCAzNTEwNjlkNmUxODllNGFiNThjOWViNTI4NDdkYWVlMGMy
NzM3MTc0Li4yYjVlMjA5ZjNlNmI4MTFkODkzMWViZDAzN2NkMzUzNzcxNmQwZGY0IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDYtMDIgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV29ya2VyIG1heSBu
b3QgYmUgc3RvcHBlZCBhZnRlciBMVC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxODQ3CisKKyAgICAgICAgUmUtc3VibWl0IGEgdmFyaWFudCBvZiB0
aGUgZmlyc3QgZml4IGZvciB0aGlzIGJ1Zy4gSXQncyBwb3NzaWJsZQorICAgICAgICB0aGF0IGFj
dHVhbGx5IGNhbGxpbmcgY2xlYW51cCgpIGluIHRoZSB3b3JrZXIgdGhyZWFkcyB3YXMgdGFraW5n
CisgICAgICAgIHRvbyBsb25nIGFuZCB3ZSB0cmlnZ2VyZWQgdGhlIGFzc2VydGlvbnMgaW4gdGhl
IG1hbmFnZXIgdGhyZWFkLgorCisgICAgICAgIEkndmUgYnVtcGVkIHVwIHRoZSB0aW1lb3V0IGlu
IHRoZSBtYW5hZ2VyIGFuZCBhZGRlZCBiZXR0ZXIKKyAgICAgICAgZGlhZ25vc3RpY3MuIEkgYWxz
byBjbGVhbmVkIHVwIHRoZSBjbGVhbnVwKCkgY29kZSBhIGJpdCBiZWNhdXNlCisgICAgICAgIHRo
ZXJlIHdhcyBzb21lIHVubmVjZXNzYXJ5IGlmLWNoZWNrcy4KKworICAgICAgICAqIFNjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5
OgorCiAyMDExLTA2LTAzICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFRvbnkgQ2hhbmcuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5IGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQpp
bmRleCA3NWJjZTBkMDVmNDkxODIyYjk1OTRiOGMwODUzNDAzZDdlNjc1ZGRiLi45ZWUxZDdlNzVi
OGJhMTlkYzdhNjRiNjM0NDUxNjhmMmJlYmEyNGM5IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CisrKyBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIu
cHkKQEAgLTY3NCw4ICs2NzQsMTAgQEAgY2xhc3MgTWFuYWdlcjoKICAgICAgICAgICAgICMgTWFr
ZSBzdXJlIGFsbCBvZiB0aGUgd29ya2VycyBoYXZlIHNodXQgZG93biAoaWYgcG9zc2libGUpLgog
ICAgICAgICAgICAgZm9yIHdvcmtlcl9zdGF0ZSBpbiBzZWxmLl93b3JrZXJfc3RhdGVzLnZhbHVl
cygpOgogICAgICAgICAgICAgICAgIGlmIG5vdCB3b3JrZXJfc3RhdGUud2VkZ2VkIGFuZCB3b3Jr
ZXJfc3RhdGUud29ya2VyX2Nvbm5lY3Rpb24uaXNfYWxpdmUoKToKLSAgICAgICAgICAgICAgICAg
ICAgd29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmpvaW4oMC41KQotICAgICAgICAgICAg
ICAgICAgICBhc3NlcnQgbm90IHdvcmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5pc19hbGl2
ZSgpCisgICAgICAgICAgICAgICAgICAgIF9sb2cuZGVidWcoJ1dhaXRpbmcgZm9yIHdvcmtlciAl
ZCB0byBleGl0JyAlIHdvcmtlcl9zdGF0ZS5udW1iZXIpCisgICAgICAgICAgICAgICAgICAgIHdv
cmtlcl9zdGF0ZS53b3JrZXJfY29ubmVjdGlvbi5qb2luKDUuMCkKKyAgICAgICAgICAgICAgICAg
ICAgaWYgd29ya2VyX3N0YXRlLndvcmtlcl9jb25uZWN0aW9uLmlzX2FsaXZlKCk6CisgICAgICAg
ICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKCdXb3JrZWQgJWQgZGlkIG5vdCBleGl0IGluIHRp
bWUuJyAlIHdvcmtlcl9zdGF0ZS5udW1iZXIpCiAKICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50
ZXJydXB0OgogICAgICAgICAgICAgX2xvZy5pbmZvKCJJbnRlcnJ1cHRlZCwgZXhpdGluZyIpCmRp
ZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFj
a2FnZS93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlv
dXRfcGFja2FnZS93b3JrZXIucHkKaW5kZXggNmZmM2YxMjU4YTIwZTc5N2I1MTJkNmY1MjE5ZTk5
NmViZTQzZjc4ZC4uZTk5ZWZhMzk3YzkxMzA5MTRjNjE3MWY3ZTFiNTE5YmZkNTljMzA0MCAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2th
Z2Uvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xh
eW91dF9wYWNrYWdlL3dvcmtlci5weQpAQCAtMTEwLDYgKzExMCw3IEBAIGNsYXNzIFdvcmtlciht
YW5hZ2VyX3dvcmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICAgICAgICAgIHNl
bGYuX3dvcmtlcl9jb25uZWN0aW9uLnBvc3RfbWVzc2FnZSgnZXhjZXB0aW9uJywKICAgICAgICAg
ICAgICAgICAgICAgKGV4Y2VwdGlvbl90eXBlLCBleGNlcHRpb25fdmFsdWUsIE5vbmUpKQogICAg
ICAgICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24ucG9zdF9tZXNzYWdlKCdkb25lJykKKyAg
ICAgICAgICAgIHNlbGYuY2xlYW51cCgpCiAKICAgICBkZWYgaGFuZGxlX3Rlc3RfbGlzdChzZWxm
LCBzcmMsIGxpc3RfbmFtZSwgdGVzdF9saXN0KToKICAgICAgICAgaWYgbGlzdF9uYW1lID09ICJ0
ZXN0c190b19odHRwX2xvY2siOgpAQCAtMTQ0LDEzICsxNDUsMTMgQEAgY2xhc3MgV29ya2VyKG1h
bmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgIHNlbGYuY2xlYW5f
dXBfYWZ0ZXJfdGVzdCh0ZXN0X2lucHV0LCByZXN1bHQpCiAKICAgICBkZWYgY2xlYW51cChzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5fZHJpdmVyOgotICAgICAgICAgICAgc2VsZi5raWxsX2RyaXZl
cigpCi0gICAgICAgIGlmIHNlbGYuX2hhc19odHRwX2xvY2s6Ci0gICAgICAgICAgICBzZWxmLnN0
b3Bfc2VydmVyc193aXRoX2xvY2soKQorICAgICAgICBfbG9nLmRlYnVnKCJjbGVhbmluZyB1cCIp
CisgICAgICAgIHNlbGYua2lsbF9kcml2ZXIoKQorICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193
aXRoX2xvY2soKQogICAgICAgICBpZiBzZWxmLl90ZXN0c19ydW5fZmlsZToKICAgICAgICAgICAg
IHNlbGYuX3Rlc3RzX3J1bl9maWxlLmNsb3NlKCkKICAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1
bl9maWxlID0gTm9uZQorICAgICAgICBfbG9nLmRlYnVnKCJkb25lIGNsZWFuaW5nIHVwIikKIAog
ICAgIGRlZiB0aW1lb3V0KHNlbGYsIHRlc3RfaW5wdXQpOgogICAgICAgICAiIiJDb21wdXRlIHRo
ZSBhcHByb3ByaWF0ZSB0aW1lb3V0IHZhbHVlIGZvciBhIHRlc3QuIiIiCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>