<?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>63103</bug_id>
          
          <creation_ts>2011-06-21 16:13:43 -0700</creation_ts>
          <short_desc>nrwt: move http locking code into manager</short_desc>
          <delta_ts>2011-06-23 17:33:54 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>63112</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Dirk Pranke">dpranke</assigned_to>
          <cc>abarth</cc>
    
    <cc>abecsi</cc>
    
    <cc>aroben</cc>
    
    <cc>eric</cc>
    
    <cc>kkristof</cc>
    
    <cc>ojan</cc>
    
    <cc>ossy</cc>
    
    <cc>rgabor</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>424841</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 16:13:43 -0700</bug_when>
    <thetext>nrwt: move http locking code into manager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424888</commentid>
    <comment_count>1</comment_count>
      <attachid>98085</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 17:16:04 -0700</bug_when>
    <thetext>Created attachment 98085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424919</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 17:49:58 -0700</bug_when>
    <thetext>This patch is the first of a (shortish) series of patches that will allow us to get better sharding and throughput of the http tests.

A while ago we added the ability to new-run-webkit-tests to only run the http tests if we held a machine-wide file lock, so that we could run multiple NRWT&apos;s on a box at a time without needing to worry about resource conflicts.

That change was fine, but the way it was implemented depended on a single worker thread getting all of the http tests, grabbing the lock, and then running the tests. This had the advantage that if some other process held the lock, NRWT could execute at least some tests in other threads.

But, it had a couple of downsides. First, any failures related to starting and stopping the web server tended to get lost in the --verbose noise and the output from the other tests executing. Second, it was separate from all of the other configuration checking and status updates (which are done in the worker). Third, and by far the most important, it made it impossible to run the http tests in multiple shards amongst multiple workers.

So, I am attempting to unwind the change slightly and implement it differently. The startup/shutdown logic will be done in the manager, and we will distribute the http tests into some (fixable) number of shards and hand them to workers, so that we can better control the load on the web server (e.g., we might want to have 12 child processes on a big Mac Pro, but only ever be doing 4 concurrent http test).

It is unclear to me if anyone is actively running multiple NRWTs in parallel on a single machine, and if it is important that we get real multiplexing, as opposed to just correct semi-serialization. The HTTP tests when run in a single thread are easily the slowest shard and the long pole in an NRWT run, so I imagine that the lock is held for most if not all of the run, anyway.

So, this patch just surrounds the entire test run with the lock.

Subsequent patches will then split the tests into multiple shards, and modify the logic so that we drop the lock when all of the http-requiring shards have completed.

If some users are actively running multiple test runs in parallel on the same machine, and it turns out that more finely-grained contention is really useful, we can change the logic in the master so that it does a non-blocking trylock on the file, and runs non-http tests until it can actually get the lock.

I&apos;ve copied at least a few people who might want to run multiple concurrent test runs. Can any of you say how important it is in practice right now to be able to get more finely-grained locking as I&apos;ve described above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424972</commentid>
    <comment_count>3</comment_count>
      <attachid>98104</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 19:45:38 -0700</bug_when>
    <thetext>Created attachment 98104
change location of start/stop code to mesh with subsequent sharding better</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>424976</commentid>
    <comment_count>4</comment_count>
      <attachid>98106</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 20:05:27 -0700</bug_when>
    <thetext>Created attachment 98106
remove dangling stop</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425025</commentid>
    <comment_count>5</comment_count>
      <attachid>98106</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-21 22:23:08 -0700</bug_when>
    <thetext>Comment on attachment 98106
remove dangling stop

This patch caused trouble for the cr-linux-ews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425030</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-21 22:34:27 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 98106 [details])
&gt; This patch caused trouble for the cr-linux-ews.

Can you go into any more specifics? Log files, etc.? 

Is there some other way I can get this reviewed that won&apos;t cause problems for the ews bot? Although, this patch shouldn&apos;t cause trouble for any bots, so it would be good to see the errors ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>425327</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-06-22 10:13:44 -0700</bug_when>
    <thetext>&gt; Can you go into any more specifics? Log files, etc.? 
&gt; 
&gt; Is there some other way I can get this reviewed that won&apos;t cause problems for the ews bot? Although, this patch shouldn&apos;t cause trouble for any bots, so it would be good to see the errors ...

I&apos;m not 100% clear whether this patch caused the problems, but the bots were spinning because the HTTP port was in use.  Now that I read the email you send to the gardening list, I realize this might be related to that patch.

In any case, I&apos;ve rebooted the bots and this patch now has a green bubble, so perhaps everything is fine.  Sorry for the distraction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426573</commentid>
    <comment_count>8</comment_count>
      <attachid>98106</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-06-23 16:00:23 -0700</bug_when>
    <thetext>Comment on attachment 98106
remove dangling stop

Didn&apos;t we have unittests for these methods?  Maybe they were lower level.

_run_tests is a long function.  It would be nice to break it into smaller pieces some day . . .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426640</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-23 17:06:11 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 98106 [details])
&gt; Didn&apos;t we have unittests for these methods?  Maybe they were lower level.
&gt; 
&gt; _run_tests is a long function.  It would be nice to break it into smaller pieces some day . . .

We don&apos;t have unittests per se for these methods, but they are pretty well covered by the tests in run_webkit_tests_integrationtest.py, and we have tests for the locking and start/stop code now.

I agree that _run_tests is too long now, but that&apos;ll be separate patches to fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426655</commentid>
    <comment_count>10</comment_count>
      <attachid>98106</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-23 17:33:49 -0700</bug_when>
    <thetext>Comment on attachment 98106
remove dangling stop

Clearing flags on attachment: 98106

Committed r89642: &lt;http://trac.webkit.org/changeset/89642&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>426656</commentid>
    <comment_count>11</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-06-23 17:33:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98085</attachid>
            <date>2011-06-21 17:16:04 -0700</date>
            <delta_ts>2011-06-21 19:45:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-63103-20110621171603.patch</filename>
            <type>text/plain</type>
            <size>6619</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNzMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYmEyNWY0NGRlYzhhNzhiNzg0MGExYTM5M2YwOWNkN2U5
MTcxY2I1Li41N2I0Zjc2ZTQ1MWQ0ZGNkY2Y3Y2I2ZmMxNmY0NDIzMTViMzVmNTAyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDYtMjEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dDogbW92ZSBo
dHRwIGxvY2tpbmcgY29kZSBpbnRvIG1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTAzCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5weToKKwogMjAx
MS0wNi0yMSAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQppbmRleCA5MGZh
MDU4MGUxY2EwMzQzOTIzNzE0ODNjNGJmNzBmYzNhZmU0ZGU1Li4xMmE1NzVhN2Q1OTZkYjA5NGNk
ZTRlMjBiNTQ2N2ExMTQ2ZGU5OTcxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKQEAgLTI2
Miw3ICsyNjIsNyBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICBzZWxmLkhUVFBfU1VCRElSID0g
c2VsZi5fZnMuam9pbignJywgJ2h0dHAnLCAnJykKICAgICAgICAgc2VsZi5XRUJTT0NLRVRfU1VC
RElSID0gc2VsZi5fZnMuam9pbignJywgJ3dlYnNvY2tldCcsICcnKQogICAgICAgICBzZWxmLkxB
WU9VVF9URVNUU19ESVJFQ1RPUlkgPSAiTGF5b3V0VGVzdHMiICsgc2VsZi5fZnMuc2VwCi0KKyAg
ICAgICAgc2VsZi5faGFzX2h0dHBfbG9jayA9IEZhbHNlCiAKICAgICAgICAgIyBkaXNhYmxlIHdz
cyBzZXJ2ZXIuIG5lZWQgdG8gaW5zdGFsbCBweU9wZW5TU0wgb24gYnVpbGRib3RzLgogICAgICAg
ICAjIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdl
YlNvY2tldCgKQEAgLTI4Miw3ICsyODIsNiBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICAjIFRo
aXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlIHN0YXRlIHdlIGFyZSB0cmFja2luZyBmb3IgZWFj
aCBvZiB0aGVtLgogICAgICAgICBzZWxmLl93b3JrZXJfc3RhdGVzID0ge30KIAotCiAgICAgZGVm
IGNvbGxlY3RfdGVzdHMoc2VsZiwgYXJncywgbGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMpOgogICAg
ICAgICAiIiJGaW5kIGFsbCB0aGUgZmlsZXMgdG8gdGVzdC4KIApAQCAtNzYyLDYgKzc2MSw5IEBA
IGNsYXNzIE1hbmFnZXI6CiAgICAgICAgIGlmIG5vdCByZXN1bHRfc3VtbWFyeToKICAgICAgICAg
ICAgIHJldHVybiBOb25lCiAKKyAgICAgICAgaWYgc2VsZi5uZWVkc19odHRwKCk6CisgICAgICAg
ICAgICBzZWxmLnN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKCkKKwogICAgICAgICByZXR1cm4gcmVz
dWx0X3N1bW1hcnkKIAogICAgIGRlZiBydW4oc2VsZiwgcmVzdWx0X3N1bW1hcnkpOgpAQCAtODA0
LDYgKzgwNiw4IEBAIGNsYXNzIE1hbmFnZXI6CiAKICAgICAgICAgZW5kX3RpbWUgPSB0aW1lLnRp
bWUoKQogCisgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisKICAgICAgICAg
c2VsZi5fcHJpbnRfdGltaW5nX3N0YXRpc3RpY3MoZW5kX3RpbWUgLSBzdGFydF90aW1lLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aHJlYWRfdGltaW5ncywgdGVzdF90
aW1pbmdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRpdmlkdWFs
X3Rlc3RfdGltaW5ncywKQEAgLTg0OCw5ICs4NTIsMzAgQEAgY2xhc3MgTWFuYWdlcjoKICAgICAg
ICAgIyBib3QgcmVkIGZvciB0aG9zZS4KICAgICAgICAgcmV0dXJuIHVuZXhwZWN0ZWRfcmVzdWx0
c1snbnVtX3JlZ3Jlc3Npb25zJ10KIAorICAgIGRlZiBzdGFydF9zZXJ2ZXJzX3dpdGhfbG9jayhz
ZWxmKToKKyAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91cGRhdGUoJ0FjcXVpcmluZyBodHRw
IGxvY2sgLi4uJykKKyAgICAgICAgc2VsZi5fcG9ydC5hY3F1aXJlX2h0dHBfbG9jaygpCisgICAg
ICAgIHNlbGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCdTdGFydGluZyBIVFRQIHNlcnZlciAuLi4n
KQorICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X2h0dHBfc2VydmVyKCkKKyAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF91cGRhdGUoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAg
ICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgc2VsZi5f
aGFzX2h0dHBfbG9jayA9IFRydWUKKworICAgIGRlZiBzdG9wX3NlcnZlcnNfd2l0aF9sb2NrKHNl
bGYpOgorICAgICAgICBpZiBzZWxmLl9oYXNfaHR0cF9sb2NrOgorICAgICAgICAgICAgc2VsZi5f
cHJpbnRlci5wcmludF91cGRhdGUoJ1N0b3BwaW5nIEhUVFAgc2VydmVyIC4uLicpCisgICAgICAg
ICAgICBzZWxmLl9wb3J0LnN0b3BfaHR0cF9zZXJ2ZXIoKQorICAgICAgICAgICAgc2VsZi5fcHJp
bnRlci5wcmludF91cGRhdGUoJ1N0b3BwaW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKKyAgICAg
ICAgICAgIHNlbGYuX3BvcnQuc3RvcF93ZWJzb2NrZXRfc2VydmVyKCkKKyAgICAgICAgICAgIHNl
bGYuX3ByaW50ZXIucHJpbnRfdXBkYXRlKCdSZWxlYXNpbmcgc2VydmVyIGxvY2sgLi4uJykKKyAg
ICAgICAgICAgIHNlbGYuX3BvcnQucmVsZWFzZV9odHRwX2xvY2soKQorICAgICAgICAgICAgc2Vs
Zi5faGFzX2h0dHBfbG9jayA9IEZhbHNlCisKICAgICBkZWYgY2xlYW5fdXBfcnVuKHNlbGYpOgog
ICAgICAgICAiIiJSZXN0b3JlcyB0aGUgc3lzdGVtIGFmdGVyIHdlJ3JlIGRvbmUgcnVubmluZyB0
ZXN0cy4iIiIKIAorICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQorCiAgICAg
ICAgIF9sb2cuZGVidWcoImZsdXNoaW5nIHN0ZG91dCIpCiAgICAgICAgIHN5cy5zdGRvdXQuZmx1
c2goKQogICAgICAgICBfbG9nLmRlYnVnKCJmbHVzaGluZyBzdGRlcnIiKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2Vy
LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uv
d29ya2VyLnB5CmluZGV4IGNjODcwYWUwZmM0NzEzNjU5MjY1ODIyODVjNDJiNDRhZDRhM2ZiM2Yu
LjFmNTRhODhmYjRkNGM3MzViMjgyZDM3MDY2M2M0YWJmZDhlYjRhNjMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5w
eQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2Fn
ZS93b3JrZXIucHkKQEAgLTcxLDEyICs3MSw2IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dvcmtl
cl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgInRlc3RzX3J1biVkLnR4dCIgJSBzZWxmLl93b3JrZXJfbnVt
YmVyKQogICAgICAgICBzZWxmLl90ZXN0c19ydW5fZmlsZSA9IHNlbGYuX2ZpbGVzeXN0ZW0ub3Bl
bl90ZXh0X2ZpbGVfZm9yX3dyaXRpbmcodGVzdHNfcnVuX2ZpbGVuYW1lKQogCi0gICAgICAgICMg
RklYTUU6IGl0J3MgZ29vZnkgdGhhdCB3ZSBoYXZlIHRvIHRyYWNrIHRoaXMgYXQgYWxsLCBidXQg
aXQncyBkdWUgdG8KLSAgICAgICAgIyB0aGUgYXdrd2FyZCBsb2dpYyBpbiBUZXN0U2hlbGxUaHJl
YWQuX3J1bigpLiBXaGVuIHdlIHJlbW92ZSB0aGF0Ci0gICAgICAgICMgZmlsZSwgd2Ugc2hvdWxk
IHJld3JpdGUgdGhpcyBjb2RlIHNvIHRoYXQgY2FsbGVyIGtlZXBzIHRyYWNrIG9mIHdoZXRoZXIK
LSAgICAgICAgIyB0aGUgbG9jayBpcyBoZWxkLgotICAgICAgICBzZWxmLl9oYXNfaHR0cF9sb2Nr
ID0gRmFsc2UKLQogICAgIGRlZiBjYW5jZWwoc2VsZik6CiAgICAgICAgICIiIkF0dGVtcHQgdG8g
YWJvcnQgcHJvY2Vzc2luZyAoYmVzdCBlZmZvcnQpLiIiIgogICAgICAgICBzZWxmLl9jYW5jZWxl
ZCA9IFRydWUKQEAgLTExOCw5ICsxMTIsNiBAQCBjbGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJf
YnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAgICAgc2VsZi5fd29ya2VyX2Nvbm5lY3Rpb24u
cG9zdF9tZXNzYWdlKCdleGNlcHRpb24nLCBleGNlcHRpb25fdHlwZSwgZXhjZXB0aW9uX3ZhbHVl
LCBzdGFjaykKIAogICAgIGRlZiBoYW5kbGVfdGVzdF9saXN0KHNlbGYsIHNyYywgbGlzdF9uYW1l
LCB0ZXN0X2xpc3QpOgotICAgICAgICBpZiBsaXN0X25hbWUgPT0gInRlc3RzX3RvX2h0dHBfbG9j
ayI6Ci0gICAgICAgICAgICBzZWxmLnN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKCkKLQogICAgICAg
ICBzdGFydF90aW1lID0gdGltZS50aW1lKCkKICAgICAgICAgbnVtX3Rlc3RzID0gMAogICAgICAg
ICBmb3IgdGVzdF9pbnB1dCBpbiB0ZXN0X2xpc3Q6CkBAIC0xMzEsOCArMTIyLDYgQEAgY2xhc3Mg
V29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgIGVs
YXBzZWRfdGltZSA9IHRpbWUudGltZSgpIC0gc3RhcnRfdGltZQogICAgICAgICBzZWxmLl93b3Jr
ZXJfY29ubmVjdGlvbi5wb3N0X21lc3NhZ2UoJ2ZpbmlzaGVkX2xpc3QnLCBsaXN0X25hbWUsIG51
bV90ZXN0cywgZWxhcHNlZF90aW1lKQogCi0gICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhf
bG9jaygpCi0KICAgICBkZWYgaGFuZGxlX3N0b3Aoc2VsZiwgc3JjKToKICAgICAgICAgc2VsZi5f
ZG9uZSA9IFRydWUKIApAQCAtMTUxLDcgKzE0MCw2IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dv
cmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgIGRlZiBjbGVhbnVwKHNlbGYpOgogICAg
ICAgICBfbG9nLmRlYnVnKCIlcyBjbGVhbmluZyB1cCIgJSBzZWxmLl9uYW1lKQogICAgICAgICBz
ZWxmLmtpbGxfZHJpdmVyKCkKLSAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkK
ICAgICAgICAgaWYgc2VsZi5fdGVzdHNfcnVuX2ZpbGU6CiAgICAgICAgICAgICBzZWxmLl90ZXN0
c19ydW5fZmlsZS5jbG9zZSgpCiAgICAgICAgICAgICBzZWxmLl90ZXN0c19ydW5fZmlsZSA9IE5v
bmUKQEAgLTE3MiwyNSArMTYwLDYgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tl
ci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgIHRocmVhZF90aW1lb3V0X3NlYyA9IGRyaXZlcl90
aW1lb3V0X3NlYyArIHRocmVhZF9wYWRkaW5nX3NlYwogICAgICAgICByZXR1cm4gdGhyZWFkX3Rp
bWVvdXRfc2VjCiAKLSAgICBkZWYgc3RhcnRfc2VydmVyc193aXRoX2xvY2soc2VsZik6Ci0gICAg
ICAgIF9sb2cuZGVidWcoJ0FjcXVpcmluZyBodHRwIGxvY2sgLi4uJykKLSAgICAgICAgc2VsZi5f
cG9ydC5hY3F1aXJlX2h0dHBfbG9jaygpCi0gICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIEhU
VFAgc2VydmVyIC4uLicpCi0gICAgICAgIHNlbGYuX3BvcnQuc3RhcnRfaHR0cF9zZXJ2ZXIoKQot
ICAgICAgICBfbG9nLmRlYnVnKCdTdGFydGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCi0gICAg
ICAgIHNlbGYuX3BvcnQuc3RhcnRfd2Vic29ja2V0X3NlcnZlcigpCi0gICAgICAgIHNlbGYuX2hh
c19odHRwX2xvY2sgPSBUcnVlCi0KLSAgICBkZWYgc3RvcF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxm
KToKLSAgICAgICAgaWYgc2VsZi5faGFzX2h0dHBfbG9jazoKLSAgICAgICAgICAgIF9sb2cuZGVi
dWcoJ1N0b3BwaW5nIEhUVFAgc2VydmVyIC4uLicpCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnN0
b3BfaHR0cF9zZXJ2ZXIoKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBpbmcgV2ViU29j
a2V0IHNlcnZlciAuLi4nKQotICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX3dlYnNvY2tldF9z
ZXJ2ZXIoKQotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnUmVsZWFzaW5nIHNlcnZlciBsb2NrIC4u
LicpCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnJlbGVhc2VfaHR0cF9sb2NrKCkKLSAgICAgICAg
ICAgIHNlbGYuX2hhc19odHRwX2xvY2sgPSBGYWxzZQotCiAgICAgZGVmIGtpbGxfZHJpdmVyKHNl
bGYpOgogICAgICAgICBpZiBzZWxmLl9kcml2ZXI6CiAgICAgICAgICAgICBzZWxmLl9kcml2ZXIu
c3RvcCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98104</attachid>
            <date>2011-06-21 19:45:38 -0700</date>
            <delta_ts>2011-06-21 20:05:23 -0700</delta_ts>
            <desc>change location of start/stop code to mesh with subsequent sharding better</desc>
            <filename>bug-63103-20110621194537.patch</filename>
            <type>text/plain</type>
            <size>6993</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNzMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYmEyNWY0NGRlYzhhNzhiNzg0MGExYTM5M2YwOWNkN2U5
MTcxY2I1Li41N2I0Zjc2ZTQ1MWQ0ZGNkY2Y3Y2I2ZmMxNmY0NDIzMTViMzVmNTAyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDYtMjEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dDogbW92ZSBo
dHRwIGxvY2tpbmcgY29kZSBpbnRvIG1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTAzCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5weToKKwogMjAx
MS0wNi0yMSAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQppbmRleCA5MGZh
MDU4MGUxY2EwMzQzOTIzNzE0ODNjNGJmNzBmYzNhZmU0ZGU1Li5jNzQ2NDU1NDVkNTg2YTRkOWI4
NmY3ZTBjODM2MTIxOTRmMDJmZDE3IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKQEAgLTI2
Miw3ICsyNjIsNyBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICBzZWxmLkhUVFBfU1VCRElSID0g
c2VsZi5fZnMuam9pbignJywgJ2h0dHAnLCAnJykKICAgICAgICAgc2VsZi5XRUJTT0NLRVRfU1VC
RElSID0gc2VsZi5fZnMuam9pbignJywgJ3dlYnNvY2tldCcsICcnKQogICAgICAgICBzZWxmLkxB
WU9VVF9URVNUU19ESVJFQ1RPUlkgPSAiTGF5b3V0VGVzdHMiICsgc2VsZi5fZnMuc2VwCi0KKyAg
ICAgICAgc2VsZi5faGFzX2h0dHBfbG9jayA9IEZhbHNlCiAKICAgICAgICAgIyBkaXNhYmxlIHdz
cyBzZXJ2ZXIuIG5lZWQgdG8gaW5zdGFsbCBweU9wZW5TU0wgb24gYnVpbGRib3RzLgogICAgICAg
ICAjIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdl
YlNvY2tldCgKQEAgLTI4Miw3ICsyODIsNiBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICAjIFRo
aXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlIHN0YXRlIHdlIGFyZSB0cmFja2luZyBmb3IgZWFj
aCBvZiB0aGVtLgogICAgICAgICBzZWxmLl93b3JrZXJfc3RhdGVzID0ge30KIAotCiAgICAgZGVm
IGNvbGxlY3RfdGVzdHMoc2VsZiwgYXJncywgbGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMpOgogICAg
ICAgICAiIiJGaW5kIGFsbCB0aGUgZmlsZXMgdG8gdGVzdC4KIApAQCAtNjMwLDYgKzYyOSwxMSBA
QCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICB0ZXN0X2xpc3RzID0gc2VsZi5fc2hhcmRfdGVzdHMo
ZmlsZV9saXN0LAogICAgICAgICAgICAgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2Vz
KSA+IDEgYW5kIG5vdCBzZWxmLl9vcHRpb25zLmV4cGVyaW1lbnRhbF9mdWxseV9wYXJhbGxlbCkK
IAorICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGEgbGVzcyBoYXJkLWNvZGVkIHdheSBvZiBmaWd1
cmluZyBvdXQgaWYgd2UgbmVlZCB0bworICAgICAgICAjIHN0YXJ0IHRoZSBzZXJ2ZXJzLgorICAg
ICAgICBpZiB0ZXN0X2xpc3RzWzBdWzBdID09ICd0ZXN0c190b19odHRwX2xvY2snOgorICAgICAg
ICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisKICAgICAgICAgbnVtX3dvcmtl
cnMgPSBzZWxmLl9udW1fd29ya2VycyhsZW4odGVzdF9saXN0cykpCiAgICAgICAgIG1hbmFnZXJf
Y29ubmVjdGlvbiA9IG1hbmFnZXJfd29ya2VyX2Jyb2tlci5nZXQoc2VsZi5fcG9ydCwgc2VsZi5f
b3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLCB3b3JrZXIuV29ya2VyKQpAQCAtNjk4LDYgKzcwMiw4IEBAIGNsYXNzIE1h
bmFnZXI6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCJFeGNlcHRpb24gcmFpc2VkLCBleGl0aW5n
IikKICAgICAgICAgICAgIHNlbGYuY2FuY2VsX3dvcmtlcnMoKQogICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9j
aygpCiAKICAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSBbd29ya2VyX3N0YXRlLnN0YXRzIGZvciB3
b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKV0KIApAQCAtODQ4LDkg
Kzg1NCwzMCBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICAjIGJvdCByZWQgZm9yIHRob3NlLgog
ICAgICAgICByZXR1cm4gdW5leHBlY3RlZF9yZXN1bHRzWydudW1fcmVncmVzc2lvbnMnXQogCisg
ICAgZGVmIHN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgorICAgICAgICBzZWxmLl9wcmlu
dGVyLnByaW50X3VwZGF0ZSgnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQorICAgICAgICBzZWxm
Ll9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91
cGRhdGUoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCisgICAgICAgIHNlbGYuX3BvcnQuc3Rh
cnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3Rh
cnRpbmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQorICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X3dl
YnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLl9oYXNfaHR0cF9sb2NrID0gVHJ1ZQorCisg
ICAgZGVmIHN0b3Bfc2VydmVyc193aXRoX2xvY2soc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2hh
c19odHRwX2xvY2s6CisgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3Rv
cHBpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRw
X3NlcnZlcigpCisgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3RvcHBp
bmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX3dl
YnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91cGRhdGUo
J1JlbGVhc2luZyBzZXJ2ZXIgbG9jayAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxl
YXNlX2h0dHBfbG9jaygpCisgICAgICAgICAgICBzZWxmLl9oYXNfaHR0cF9sb2NrID0gRmFsc2UK
KwogICAgIGRlZiBjbGVhbl91cF9ydW4oc2VsZik6CiAgICAgICAgICIiIlJlc3RvcmVzIHRoZSBz
eXN0ZW0gYWZ0ZXIgd2UncmUgZG9uZSBydW5uaW5nIHRlc3RzLiIiIgogCisgICAgICAgIHNlbGYu
c3RvcF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisKICAgICAgICAgX2xvZy5kZWJ1ZygiZmx1c2hpbmcg
c3Rkb3V0IikKICAgICAgICAgc3lzLnN0ZG91dC5mbHVzaCgpCiAgICAgICAgIF9sb2cuZGVidWco
ImZsdXNoaW5nIHN0ZGVyciIpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93b3JrZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93b3JrZXIucHkKaW5kZXggY2M4NzBhZTBm
YzQ3MTM2NTkyNjU4MjI4NWM0MmI0NGFkNGEzZmIzZi4uMWY1NGE4OGZiNGQ0YzczNWIyODJkMzcw
NjYzYzRhYmZkOGViNGE2MyAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5weQpAQCAtNzEsMTIgKzcx
LDYgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidGVz
dHNfcnVuJWQudHh0IiAlIHNlbGYuX3dvcmtlcl9udW1iZXIpCiAgICAgICAgIHNlbGYuX3Rlc3Rz
X3J1bl9maWxlID0gc2VsZi5fZmlsZXN5c3RlbS5vcGVuX3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0
ZXN0c19ydW5fZmlsZW5hbWUpCiAKLSAgICAgICAgIyBGSVhNRTogaXQncyBnb29meSB0aGF0IHdl
IGhhdmUgdG8gdHJhY2sgdGhpcyBhdCBhbGwsIGJ1dCBpdCdzIGR1ZSB0bwotICAgICAgICAjIHRo
ZSBhd2t3YXJkIGxvZ2ljIGluIFRlc3RTaGVsbFRocmVhZC5fcnVuKCkuIFdoZW4gd2UgcmVtb3Zl
IHRoYXQKLSAgICAgICAgIyBmaWxlLCB3ZSBzaG91bGQgcmV3cml0ZSB0aGlzIGNvZGUgc28gdGhh
dCBjYWxsZXIga2VlcHMgdHJhY2sgb2Ygd2hldGhlcgotICAgICAgICAjIHRoZSBsb2NrIGlzIGhl
bGQuCi0gICAgICAgIHNlbGYuX2hhc19odHRwX2xvY2sgPSBGYWxzZQotCiAgICAgZGVmIGNhbmNl
bChzZWxmKToKICAgICAgICAgIiIiQXR0ZW1wdCB0byBhYm9ydCBwcm9jZXNzaW5nIChiZXN0IGVm
Zm9ydCkuIiIiCiAgICAgICAgIHNlbGYuX2NhbmNlbGVkID0gVHJ1ZQpAQCAtMTE4LDkgKzExMiw2
IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dvcmtlcl9icm9rZXIuQWJzdHJhY3RXb3JrZXIpOgog
ICAgICAgICBzZWxmLl93b3JrZXJfY29ubmVjdGlvbi5wb3N0X21lc3NhZ2UoJ2V4Y2VwdGlvbics
IGV4Y2VwdGlvbl90eXBlLCBleGNlcHRpb25fdmFsdWUsIHN0YWNrKQogCiAgICAgZGVmIGhhbmRs
ZV90ZXN0X2xpc3Qoc2VsZiwgc3JjLCBsaXN0X25hbWUsIHRlc3RfbGlzdCk6Ci0gICAgICAgIGlm
IGxpc3RfbmFtZSA9PSAidGVzdHNfdG9faHR0cF9sb2NrIjoKLSAgICAgICAgICAgIHNlbGYuc3Rh
cnRfc2VydmVyc193aXRoX2xvY2soKQotCiAgICAgICAgIHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUo
KQogICAgICAgICBudW1fdGVzdHMgPSAwCiAgICAgICAgIGZvciB0ZXN0X2lucHV0IGluIHRlc3Rf
bGlzdDoKQEAgLTEzMSw4ICsxMjIsNiBAQCBjbGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJfYnJv
a2VyLkFic3RyYWN0V29ya2VyKToKICAgICAgICAgZWxhcHNlZF90aW1lID0gdGltZS50aW1lKCkg
LSBzdGFydF90aW1lCiAgICAgICAgIHNlbGYuX3dvcmtlcl9jb25uZWN0aW9uLnBvc3RfbWVzc2Fn
ZSgnZmluaXNoZWRfbGlzdCcsIGxpc3RfbmFtZSwgbnVtX3Rlc3RzLCBlbGFwc2VkX3RpbWUpCiAK
LSAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9sb2NrKCkKLQogICAgIGRlZiBoYW5kbGVf
c3RvcChzZWxmLCBzcmMpOgogICAgICAgICBzZWxmLl9kb25lID0gVHJ1ZQogCkBAIC0xNTEsNyAr
MTQwLDYgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtl
cik6CiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAgICAgIF9sb2cuZGVidWcoIiVzIGNsZWFu
aW5nIHVwIiAlIHNlbGYuX25hbWUpCiAgICAgICAgIHNlbGYua2lsbF9kcml2ZXIoKQotICAgICAg
ICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQogICAgICAgICBpZiBzZWxmLl90ZXN0c19y
dW5fZmlsZToKICAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlLmNsb3NlKCkKICAgICAg
ICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gTm9uZQpAQCAtMTcyLDI1ICsxNjAsNiBAQCBj
bGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJfYnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAg
ICAgdGhyZWFkX3RpbWVvdXRfc2VjID0gZHJpdmVyX3RpbWVvdXRfc2VjICsgdGhyZWFkX3BhZGRp
bmdfc2VjCiAgICAgICAgIHJldHVybiB0aHJlYWRfdGltZW91dF9zZWMKIAotICAgIGRlZiBzdGFy
dF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKLSAgICAgICAgX2xvZy5kZWJ1ZygnQWNxdWlyaW5n
IGh0dHAgbG9jayAuLi4nKQotICAgICAgICBzZWxmLl9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkK
LSAgICAgICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKLSAgICAgICAg
c2VsZi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCi0gICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0
aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgc2VsZi5fcG9ydC5zdGFydF93ZWJz
b2NrZXRfc2VydmVyKCkKLSAgICAgICAgc2VsZi5faGFzX2h0dHBfbG9jayA9IFRydWUKLQotICAg
IGRlZiBzdG9wX3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgotICAgICAgICBpZiBzZWxmLl9oYXNf
aHR0cF9sb2NrOgotICAgICAgICAgICAgX2xvZy5kZWJ1ZygnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIg
Li4uJykKLSAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRwX3NlcnZlcigpCi0gICAgICAg
ICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBXZWJTb2NrZXQgc2VydmVyIC4uLicpCi0gICAgICAg
ICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29ja2V0X3NlcnZlcigpCi0gICAgICAgICAgICBfbG9n
LmRlYnVnKCdSZWxlYXNpbmcgc2VydmVyIGxvY2sgLi4uJykKLSAgICAgICAgICAgIHNlbGYuX3Bv
cnQucmVsZWFzZV9odHRwX2xvY2soKQotICAgICAgICAgICAgc2VsZi5faGFzX2h0dHBfbG9jayA9
IEZhbHNlCi0KICAgICBkZWYga2lsbF9kcml2ZXIoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX2Ry
aXZlcjoKICAgICAgICAgICAgIHNlbGYuX2RyaXZlci5zdG9wKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>98106</attachid>
            <date>2011-06-21 20:05:27 -0700</date>
            <delta_ts>2011-06-23 17:33:49 -0700</delta_ts>
            <desc>remove dangling stop</desc>
            <filename>bug-63103-20110621200526.patch</filename>
            <type>text/plain</type>
            <size>6846</size>
            <attacher name="Dirk Pranke">dpranke</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODkzNzMKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYmEyNWY0NGRlYzhhNzhiNzg0MGExYTM5M2YwOWNkN2U5
MTcxY2I1Li41N2I0Zjc2ZTQ1MWQ0ZGNkY2Y3Y2I2ZmMxNmY0NDIzMTViMzVmNTAyIDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTEtMDYtMjEgIERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbnJ3dDogbW92ZSBo
dHRwIGxvY2tpbmcgY29kZSBpbnRvIG1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYzMTAzCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5OgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL3dvcmtlci5weToKKwogMjAx
MS0wNi0yMSAgRG1pdHJ5IExvbW92ICA8ZHNsb21vdkBnb29nbGUuY29tPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEFkYW0gUm9iZW4uCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2UvbWFuYWdlci5weQppbmRleCA5MGZh
MDU4MGUxY2EwMzQzOTIzNzE0ODNjNGJmNzBmYzNhZmU0ZGU1Li40OGI4OTI1YTZlM2UyMGY1NmMy
ZDBhOGFmZDVjYTNkZmUzZDAyMTJlIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS9tYW5hZ2VyLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdlL21hbmFnZXIucHkKQEAgLTI2
Miw3ICsyNjIsNyBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICBzZWxmLkhUVFBfU1VCRElSID0g
c2VsZi5fZnMuam9pbignJywgJ2h0dHAnLCAnJykKICAgICAgICAgc2VsZi5XRUJTT0NLRVRfU1VC
RElSID0gc2VsZi5fZnMuam9pbignJywgJ3dlYnNvY2tldCcsICcnKQogICAgICAgICBzZWxmLkxB
WU9VVF9URVNUU19ESVJFQ1RPUlkgPSAiTGF5b3V0VGVzdHMiICsgc2VsZi5fZnMuc2VwCi0KKyAg
ICAgICAgc2VsZi5faGFzX2h0dHBfbG9jayA9IEZhbHNlCiAKICAgICAgICAgIyBkaXNhYmxlIHdz
cyBzZXJ2ZXIuIG5lZWQgdG8gaW5zdGFsbCBweU9wZW5TU0wgb24gYnVpbGRib3RzLgogICAgICAg
ICAjIHNlbGYuX3dlYnNvY2tldF9zZWN1cmVfc2VydmVyID0gd2Vic29ja2V0X3NlcnZlci5QeVdl
YlNvY2tldCgKQEAgLTI4Miw3ICsyODIsNiBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICAjIFRo
aXMgbWFwcyB3b3JrZXIgbmFtZXMgdG8gdGhlIHN0YXRlIHdlIGFyZSB0cmFja2luZyBmb3IgZWFj
aCBvZiB0aGVtLgogICAgICAgICBzZWxmLl93b3JrZXJfc3RhdGVzID0ge30KIAotCiAgICAgZGVm
IGNvbGxlY3RfdGVzdHMoc2VsZiwgYXJncywgbGFzdF91bmV4cGVjdGVkX3Jlc3VsdHMpOgogICAg
ICAgICAiIiJGaW5kIGFsbCB0aGUgZmlsZXMgdG8gdGVzdC4KIApAQCAtNjMwLDYgKzYyOSwxMSBA
QCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICB0ZXN0X2xpc3RzID0gc2VsZi5fc2hhcmRfdGVzdHMo
ZmlsZV9saXN0LAogICAgICAgICAgICAgaW50KHNlbGYuX29wdGlvbnMuY2hpbGRfcHJvY2Vzc2Vz
KSA+IDEgYW5kIG5vdCBzZWxmLl9vcHRpb25zLmV4cGVyaW1lbnRhbF9mdWxseV9wYXJhbGxlbCkK
IAorICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGEgbGVzcyBoYXJkLWNvZGVkIHdheSBvZiBmaWd1
cmluZyBvdXQgaWYgd2UgbmVlZCB0bworICAgICAgICAjIHN0YXJ0IHRoZSBzZXJ2ZXJzLgorICAg
ICAgICBpZiB0ZXN0X2xpc3RzWzBdWzBdID09ICd0ZXN0c190b19odHRwX2xvY2snOgorICAgICAg
ICAgICAgc2VsZi5zdGFydF9zZXJ2ZXJzX3dpdGhfbG9jaygpCisKICAgICAgICAgbnVtX3dvcmtl
cnMgPSBzZWxmLl9udW1fd29ya2VycyhsZW4odGVzdF9saXN0cykpCiAgICAgICAgIG1hbmFnZXJf
Y29ubmVjdGlvbiA9IG1hbmFnZXJfd29ya2VyX2Jyb2tlci5nZXQoc2VsZi5fcG9ydCwgc2VsZi5f
b3B0aW9ucywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBzZWxmLCB3b3JrZXIuV29ya2VyKQpAQCAtNjk4LDYgKzcwMiw4IEBAIGNsYXNzIE1h
bmFnZXI6CiAgICAgICAgICAgICBfbG9nLmVycm9yKCJFeGNlcHRpb24gcmFpc2VkLCBleGl0aW5n
IikKICAgICAgICAgICAgIHNlbGYuY2FuY2VsX3dvcmtlcnMoKQogICAgICAgICAgICAgcmFpc2UK
KyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIHNlbGYuc3RvcF9zZXJ2ZXJzX3dpdGhfbG9j
aygpCiAKICAgICAgICAgdGhyZWFkX3RpbWluZ3MgPSBbd29ya2VyX3N0YXRlLnN0YXRzIGZvciB3
b3JrZXJfc3RhdGUgaW4gc2VsZi5fd29ya2VyX3N0YXRlcy52YWx1ZXMoKV0KIApAQCAtODQ4LDYg
Kzg1NCwyNSBAQCBjbGFzcyBNYW5hZ2VyOgogICAgICAgICAjIGJvdCByZWQgZm9yIHRob3NlLgog
ICAgICAgICByZXR1cm4gdW5leHBlY3RlZF9yZXN1bHRzWydudW1fcmVncmVzc2lvbnMnXQogCisg
ICAgZGVmIHN0YXJ0X3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYpOgorICAgICAgICBzZWxmLl9wcmlu
dGVyLnByaW50X3VwZGF0ZSgnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQorICAgICAgICBzZWxm
Ll9wb3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKKyAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91
cGRhdGUoJ1N0YXJ0aW5nIEhUVFAgc2VydmVyIC4uLicpCisgICAgICAgIHNlbGYuX3BvcnQuc3Rh
cnRfaHR0cF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3Rh
cnRpbmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQorICAgICAgICBzZWxmLl9wb3J0LnN0YXJ0X3dl
YnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICBzZWxmLl9oYXNfaHR0cF9sb2NrID0gVHJ1ZQorCisg
ICAgZGVmIHN0b3Bfc2VydmVyc193aXRoX2xvY2soc2VsZik6CisgICAgICAgIGlmIHNlbGYuX2hh
c19odHRwX2xvY2s6CisgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3Rv
cHBpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKKyAgICAgICAgICAgIHNlbGYuX3BvcnQuc3RvcF9odHRw
X3NlcnZlcigpCisgICAgICAgICAgICBzZWxmLl9wcmludGVyLnByaW50X3VwZGF0ZSgnU3RvcHBp
bmcgV2ViU29ja2V0IHNlcnZlciAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5zdG9wX3dl
YnNvY2tldF9zZXJ2ZXIoKQorICAgICAgICAgICAgc2VsZi5fcHJpbnRlci5wcmludF91cGRhdGUo
J1JlbGVhc2luZyBzZXJ2ZXIgbG9jayAuLi4nKQorICAgICAgICAgICAgc2VsZi5fcG9ydC5yZWxl
YXNlX2h0dHBfbG9jaygpCisgICAgICAgICAgICBzZWxmLl9oYXNfaHR0cF9sb2NrID0gRmFsc2UK
KwogICAgIGRlZiBjbGVhbl91cF9ydW4oc2VsZik6CiAgICAgICAgICIiIlJlc3RvcmVzIHRoZSBz
eXN0ZW0gYWZ0ZXIgd2UncmUgZG9uZSBydW5uaW5nIHRlc3RzLiIiIgogCmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93b3JrZXIu
cHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9sYXlvdXRfcGFja2FnZS93
b3JrZXIucHkKaW5kZXggY2M4NzBhZTBmYzQ3MTM2NTkyNjU4MjI4NWM0MmI0NGFkNGEzZmIzZi4u
MWY1NGE4OGZiNGQ0YzczNWIyODJkMzcwNjYzYzRhYmZkOGViNGE2MyAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbGF5b3V0X3BhY2thZ2Uvd29ya2VyLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2xheW91dF9wYWNrYWdl
L3dvcmtlci5weQpAQCAtNzEsMTIgKzcxLDYgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29ya2Vy
X2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAidGVzdHNfcnVuJWQudHh0IiAlIHNlbGYuX3dvcmtlcl9udW1i
ZXIpCiAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gc2VsZi5fZmlsZXN5c3RlbS5vcGVu
X3RleHRfZmlsZV9mb3Jfd3JpdGluZyh0ZXN0c19ydW5fZmlsZW5hbWUpCiAKLSAgICAgICAgIyBG
SVhNRTogaXQncyBnb29meSB0aGF0IHdlIGhhdmUgdG8gdHJhY2sgdGhpcyBhdCBhbGwsIGJ1dCBp
dCdzIGR1ZSB0bwotICAgICAgICAjIHRoZSBhd2t3YXJkIGxvZ2ljIGluIFRlc3RTaGVsbFRocmVh
ZC5fcnVuKCkuIFdoZW4gd2UgcmVtb3ZlIHRoYXQKLSAgICAgICAgIyBmaWxlLCB3ZSBzaG91bGQg
cmV3cml0ZSB0aGlzIGNvZGUgc28gdGhhdCBjYWxsZXIga2VlcHMgdHJhY2sgb2Ygd2hldGhlcgot
ICAgICAgICAjIHRoZSBsb2NrIGlzIGhlbGQuCi0gICAgICAgIHNlbGYuX2hhc19odHRwX2xvY2sg
PSBGYWxzZQotCiAgICAgZGVmIGNhbmNlbChzZWxmKToKICAgICAgICAgIiIiQXR0ZW1wdCB0byBh
Ym9ydCBwcm9jZXNzaW5nIChiZXN0IGVmZm9ydCkuIiIiCiAgICAgICAgIHNlbGYuX2NhbmNlbGVk
ID0gVHJ1ZQpAQCAtMTE4LDkgKzExMiw2IEBAIGNsYXNzIFdvcmtlcihtYW5hZ2VyX3dvcmtlcl9i
cm9rZXIuQWJzdHJhY3RXb3JrZXIpOgogICAgICAgICBzZWxmLl93b3JrZXJfY29ubmVjdGlvbi5w
b3N0X21lc3NhZ2UoJ2V4Y2VwdGlvbicsIGV4Y2VwdGlvbl90eXBlLCBleGNlcHRpb25fdmFsdWUs
IHN0YWNrKQogCiAgICAgZGVmIGhhbmRsZV90ZXN0X2xpc3Qoc2VsZiwgc3JjLCBsaXN0X25hbWUs
IHRlc3RfbGlzdCk6Ci0gICAgICAgIGlmIGxpc3RfbmFtZSA9PSAidGVzdHNfdG9faHR0cF9sb2Nr
IjoKLSAgICAgICAgICAgIHNlbGYuc3RhcnRfc2VydmVyc193aXRoX2xvY2soKQotCiAgICAgICAg
IHN0YXJ0X3RpbWUgPSB0aW1lLnRpbWUoKQogICAgICAgICBudW1fdGVzdHMgPSAwCiAgICAgICAg
IGZvciB0ZXN0X2lucHV0IGluIHRlc3RfbGlzdDoKQEAgLTEzMSw4ICsxMjIsNiBAQCBjbGFzcyBX
b3JrZXIobWFuYWdlcl93b3JrZXJfYnJva2VyLkFic3RyYWN0V29ya2VyKToKICAgICAgICAgZWxh
cHNlZF90aW1lID0gdGltZS50aW1lKCkgLSBzdGFydF90aW1lCiAgICAgICAgIHNlbGYuX3dvcmtl
cl9jb25uZWN0aW9uLnBvc3RfbWVzc2FnZSgnZmluaXNoZWRfbGlzdCcsIGxpc3RfbmFtZSwgbnVt
X3Rlc3RzLCBlbGFwc2VkX3RpbWUpCiAKLSAgICAgICAgc2VsZi5zdG9wX3NlcnZlcnNfd2l0aF9s
b2NrKCkKLQogICAgIGRlZiBoYW5kbGVfc3RvcChzZWxmLCBzcmMpOgogICAgICAgICBzZWxmLl9k
b25lID0gVHJ1ZQogCkBAIC0xNTEsNyArMTQwLDYgQEAgY2xhc3MgV29ya2VyKG1hbmFnZXJfd29y
a2VyX2Jyb2tlci5BYnN0cmFjdFdvcmtlcik6CiAgICAgZGVmIGNsZWFudXAoc2VsZik6CiAgICAg
ICAgIF9sb2cuZGVidWcoIiVzIGNsZWFuaW5nIHVwIiAlIHNlbGYuX25hbWUpCiAgICAgICAgIHNl
bGYua2lsbF9kcml2ZXIoKQotICAgICAgICBzZWxmLnN0b3Bfc2VydmVyc193aXRoX2xvY2soKQog
ICAgICAgICBpZiBzZWxmLl90ZXN0c19ydW5fZmlsZToKICAgICAgICAgICAgIHNlbGYuX3Rlc3Rz
X3J1bl9maWxlLmNsb3NlKCkKICAgICAgICAgICAgIHNlbGYuX3Rlc3RzX3J1bl9maWxlID0gTm9u
ZQpAQCAtMTcyLDI1ICsxNjAsNiBAQCBjbGFzcyBXb3JrZXIobWFuYWdlcl93b3JrZXJfYnJva2Vy
LkFic3RyYWN0V29ya2VyKToKICAgICAgICAgdGhyZWFkX3RpbWVvdXRfc2VjID0gZHJpdmVyX3Rp
bWVvdXRfc2VjICsgdGhyZWFkX3BhZGRpbmdfc2VjCiAgICAgICAgIHJldHVybiB0aHJlYWRfdGlt
ZW91dF9zZWMKIAotICAgIGRlZiBzdGFydF9zZXJ2ZXJzX3dpdGhfbG9jayhzZWxmKToKLSAgICAg
ICAgX2xvZy5kZWJ1ZygnQWNxdWlyaW5nIGh0dHAgbG9jayAuLi4nKQotICAgICAgICBzZWxmLl9w
b3J0LmFjcXVpcmVfaHR0cF9sb2NrKCkKLSAgICAgICAgX2xvZy5kZWJ1ZygnU3RhcnRpbmcgSFRU
UCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgc2VsZi5fcG9ydC5zdGFydF9odHRwX3NlcnZlcigpCi0g
ICAgICAgIF9sb2cuZGVidWcoJ1N0YXJ0aW5nIFdlYlNvY2tldCBzZXJ2ZXIgLi4uJykKLSAgICAg
ICAgc2VsZi5fcG9ydC5zdGFydF93ZWJzb2NrZXRfc2VydmVyKCkKLSAgICAgICAgc2VsZi5faGFz
X2h0dHBfbG9jayA9IFRydWUKLQotICAgIGRlZiBzdG9wX3NlcnZlcnNfd2l0aF9sb2NrKHNlbGYp
OgotICAgICAgICBpZiBzZWxmLl9oYXNfaHR0cF9sb2NrOgotICAgICAgICAgICAgX2xvZy5kZWJ1
ZygnU3RvcHBpbmcgSFRUUCBzZXJ2ZXIgLi4uJykKLSAgICAgICAgICAgIHNlbGYuX3BvcnQuc3Rv
cF9odHRwX3NlcnZlcigpCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdTdG9wcGluZyBXZWJTb2Nr
ZXQgc2VydmVyIC4uLicpCi0gICAgICAgICAgICBzZWxmLl9wb3J0LnN0b3Bfd2Vic29ja2V0X3Nl
cnZlcigpCi0gICAgICAgICAgICBfbG9nLmRlYnVnKCdSZWxlYXNpbmcgc2VydmVyIGxvY2sgLi4u
JykKLSAgICAgICAgICAgIHNlbGYuX3BvcnQucmVsZWFzZV9odHRwX2xvY2soKQotICAgICAgICAg
ICAgc2VsZi5faGFzX2h0dHBfbG9jayA9IEZhbHNlCi0KICAgICBkZWYga2lsbF9kcml2ZXIoc2Vs
Zik6CiAgICAgICAgIGlmIHNlbGYuX2RyaXZlcjoKICAgICAgICAgICAgIHNlbGYuX2RyaXZlci5z
dG9wKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>