<?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>30098</bug_id>
          
          <creation_ts>2009-10-05 15:01:07 -0700</creation_ts>
          <short_desc>commit-queue can wrongly reject patches if the buildbots are behind</short_desc>
          <delta_ts>2010-01-20 03:42:06 -0800</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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>levin</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>152481</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-05 15:01:07 -0700</bug_when>
    <thetext>commit-queue can wrongly reject patches if the buildbots are behind

The commit-queue uses the buildbot status to determine if it should be landing patches or not.  Right now it checks before trying to build and if the bots are green goes ahead and tries to land.  If the build/tests fail then it assumes they were caused by the patch.

This can lead to false rejections if the bots are simply behind but they are about to turn red. :(

There are many solutions we could use to fix this.  Two possibilities:
- roll out the patch locally and try to build/test again, if that passes actually reject the patch.
- update to exactly the revision that the bots last tested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158032</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-26 17:28:04 -0700</bug_when>
    <thetext>OK.  I&apos;ve modified the commit-queue to pause itself when the buildbots get behind.

Example:
Builders [&quot;Leopard Intel Release (Tests)&quot; : 4 pending, &quot;Leopard Intel Debug (Tests)&quot; : 7 pending] are behind.  Waiting. See http://build.webkit.org/waterfall. Sleeping until 2009-10-26 17:31:39 (5 mins).

I&apos;m going to test the change locally for a bit.  I&apos;ll post a patch for review tomorrow assuming all goes well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158034</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-26 17:29:35 -0700</bug_when>
    <thetext>The sad part of this change is that it will make the commit-bot much more sensitive to our slow layout tests.  It also will make the commit-bot tend to commit patches late at night (when the tree is otherwise quiet) and will slow down response time to commit-queue+.

That said, I still would rather have a commit-queue which never falsely rejects patches than one which is fast.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158036</commentid>
    <comment_count>3</comment_count>
      <attachid>41919</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-26 17:34:41 -0700</bug_when>
    <thetext>Created attachment 41919
My proposed fix, currently testing on live commit-bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158037</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-26 17:35:36 -0700</bug_when>
    <thetext>http://webkit-commit-queue.appspot.com/ doesn&apos;t really like having such long status messages.  But you can see what the output of the bot looks like there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158120</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-27 01:39:06 -0700</bug_when>
    <thetext>Actually checking to make sure that there are no pending builds isn&apos;t quite strong enough.  If I want to actually make sure that the very latest build was green then I need to make sure that every builder is &quot;idle&quot;.

Adam Barth points out that I should have a fall-back mode, where if the builders are busy I do an extra build/test step w/o the patch applied first, if that passes then I go ahead and commit.  That might just be extra complexity for an incomplete solution, but then again it might be a big help.

As-is waiting for the builders to all be idle before letting the commit-queue run is going to greatly slow down the rate at which the commit-queue can land patches as it will be always tied to run as slowly as the slowest bot that it&apos;s watching. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>158121</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-10-27 01:40:39 -0700</bug_when>
    <thetext>I think if we end up turning this on for the commit-queue, I may end up needing to spend a bunch of effort making the buildbots faster (by speeding up run-webkit-tests).  We&apos;ll see.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>174503</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-22 18:27:05 -0800</bug_when>
    <thetext>This patch is long out of date, but I need to update it, because it would be very useful. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176828</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 13:15:12 -0800</bug_when>
    <thetext>Another victim:
https://bugs.webkit.org/show_bug.cgi?id=33090#c3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176876</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 14:37:33 -0800</bug_when>
    <thetext>This problem is super easy to solve just by running a complete cycle before landing the patch and then trying to apply the patch with --no-update.  That&apos;s how the EWS rolls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176884</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 14:43:53 -0800</bug_when>
    <thetext>The commit is more likely to fail at the end however, because the ChangeLogs are more likely to be out of date.

That approach trades one evil (longer waits before bots are actually green) for another (longer cycles, more likely to reject).  But since it&apos;s easy to implement and better than what we&apos;ve got I say go for it.  We also need to eventually fix buildbot.py&apos;s pending count (right now it&apos;s one-off), but that&apos;s relatively low priority.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176887</commentid>
    <comment_count>11</comment_count>
      <attachid>45834</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 14:46:13 -0800</bug_when>
    <thetext>Created attachment 45834
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176889</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-04 14:49:28 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 45834 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176890</commentid>
    <comment_count>13</comment_count>
      <attachid>45834</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 14:50:34 -0800</bug_when>
    <thetext>Comment on attachment 45834
Patch

Seems:
 162             self._update_status(&quot;Unabled to successfully build and test&quot;, None)

should include the revision number that it tried, and should include the results spew, no?

Also, shouldn&apos;t it prefix with ERROR: so that it shows up purple?

Probably should have a comment to explain the --no-update here:
 170             self.run_bugzilla_tool([&quot;land-attachment&quot;, &quot;--force-clean&quot;, &quot;--non-interactive&quot;, &quot;--no-update&quot;, &quot;--parent-command=commit-queue&quot;, &quot;--build-style=both&quot;, &quot;--quiet&quot;, patch[&quot;id&quot;]])

I think this is definitely better than what we have.  Sad that we&apos;ll end up running the layout tests twice which will slow us down a lot.  Hopefully that will be moot once run_webkit_tests.py is with us.

I&apos;ll say r+, but I think this needs modifications to report the status of the failed test build better.  That will help us more easily debug flakey tests (and will make the dashboard correctly show purple).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176895</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 15:02:33 -0800</bug_when>
    <thetext>&gt; should include the revision number that it tried, and should include the
&gt; results spew, no?

It could, but no one is going to see the message expect maybe you.  The EWS also as a similar idle message and I&apos;ve never been interested in why they didn&apos;t build.

&gt; Also, shouldn&apos;t it prefix with ERROR: so that it shows up purple?

This doesn&apos;t show up purple anywhere because it&apos;s not associated with any patch.  It&apos;s just an idle message like &quot;Builders [%s] are red.&quot;

I&apos;m tempted to remove the message instead of making it more complicated.

&gt; Probably should have a comment to explain the --no-update here:

Done.

&gt; I&apos;ll say r+, but I think this needs modifications to report the status of the
&gt; failed test build better.  That will help us more easily debug flakey tests
&gt; (and will make the dashboard correctly show purple).

Flakey tests will just make the commit-queue wait five minutes before landing a patch occasionally.  If we get a flaky test 1% of the time, this will add 3 seconds of average latency, which is lost in the noise of the 5 minute polling frequency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176897</commentid>
    <comment_count>15</comment_count>
      <attachid>45835</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 15:04:07 -0800</bug_when>
    <thetext>Created attachment 45835
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176898</commentid>
    <comment_count>16</comment_count>
      <attachid>45835</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 15:06:29 -0800</bug_when>
    <thetext>Comment on attachment 45835
Patch

LGTM.

Slightly confused by the second _builders_are_green() check?  (might need a comment?)  Won&apos;t land-attachment check for us?

I still need to fix buildbot to be able to tell you if things are pending.  I&apos;ll do that in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176904</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 15:13:13 -0800</bug_when>
    <thetext>&gt; Slightly confused by the second _builders_are_green() check?  (might need a
&gt; comment?)

I added that because you mentioned that build-and-test could take a while.  If the bots have gone red in the meantime (say on Windows), then we don&apos;t want to land in order to avoid making the tree worse.

&gt; Won&apos;t land-attachment check for us?

If that&apos;s the case, then why was the code there originally to check the builders?  I&apos;d be happy to remove it if you think the subprocess should handle checking the builders.  I&apos;d be more inclined to have to pass --ignore-builders and have the master process deal with deciding whether its time to run land-attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176905</commentid>
    <comment_count>18</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-04 15:14:02 -0800</bug_when>
    <thetext>Committed r52764: &lt;http://trac.webkit.org/changeset/52764&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>176909</commentid>
    <comment_count>19</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-04 15:15:52 -0800</bug_when>
    <thetext>Well, back in the day we didn&apos;t have any way to distingish between a recoverable/temporary error and a permentant error.  I&apos;m not sure that builders being red returns the right exit code.  But you&apos;re right, we could remove the second check and depend on land-attachment assuming that EnsureBuildersAreGreen returns the correct exit code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>182721</commentid>
    <comment_count>20</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-20 03:42:06 -0800</bug_when>
    <thetext>This change has made the commit-queue nearly unbearably slow.  We may need to revert this, or try a different approach.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41919</attachid>
            <date>2009-10-26 17:34:41 -0700</date>
            <delta_ts>2010-01-04 14:46:09 -0800</delta_ts>
            <desc>My proposed fix, currently testing on live commit-bot</desc>
            <filename>bug-30098-20091026173440.patch</filename>
            <type>text/plain</type>
            <size>9247</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCA5NGFkYmRiLi42MWNjMGE0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMDktMTAt
MjYgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGNvbW1pdC1xdWV1ZSBjYW4gd3JvbmdseSByZWpl
Y3QgcGF0Y2hlcyBpZiB0aGUgYnVpbGRib3RzIGFyZSBiZWhpbmQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMDk4CisKKyAgICAgICAgKiBTY3JpcHRz
L2J1Z3ppbGxhLXRvb2w6CisgICAgICAgICAtIE1vdmUgYnVpbGRib3QgY2hlY2tzIGludG8gYSBz
ZXBhcmF0ZSBmdW5jdGlvbiBfZW5zdXJlX2J1aWxkZXJzX2FyZV9ncmVlbl9hbmRfdXBfdG9fZGF0
ZSgpLgorICAgICAgICAgLSBNYWtlIGNvbW1pdC1xdWV1ZSBwYXVzZSBpdHNlbGYgd2hlbiBwZW5k
aW5nIGJ1aWxkcyA+IDAgb24gYW55IGNvcmUgYnVpbGRlci4KKyAgICAgICAgICAgV2UgY291bGQg
bWFrZSB0aGUgdGhyZXNob2xkIGhpZ2hlciB0aGFuIDAgaWYgdGhpcyByZXN1bHRzIGluIHRoZSBj
b21taXQtcXVldWUgYmVpbmcgYWx3YXlzIHBhdXNlZC4KKyAgICAgICAgIAorICAgICAgICAqIFNj
cmlwdHMvbW9kdWxlcy9idWlsZGJvdC5weToKKyAgICAgICAgIC0gTWFrZSBfcGFyc2VfYnVpbGRl
cl9zdGF0dXNfZnJvbV9yb3cgcmVhZCB0aGUgYnVpbGRlciBhY3Rpdml0eSBhbmQgc2F2ZSBvZmYg
J3BlbmRpbmdfcnVucycgY291bnQuCisgICAgICAgICAtIFVzZSBtb2Rlcm4gcHl0aG9uIGxpc3Qg
Y29tcHJlaGVuc2lvbnMuCisgICAgICAgICAtIFJlbW92ZSByZWRfY29yZV9idWlsZGVycyBhcyBp
dCBpcyBub3QgdXNlZCBieSBhbnl0aGluZyB1c2VmdWwuCisgICAgICAgICogU2NyaXB0cy9tb2R1
bGVzL2J1aWxkYm90X3VuaXR0ZXN0LnB5OgorICAgICAgICAgLSBBZGQgdGVzdHMgZm9yIHBhcnNp
bmcgcGVuZGluZ19ydW5zLgorCiAyMDA5LTEwLTI0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy9idWd6aWxsYS10b29sIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9idWd6
aWxsYS10b29sCmluZGV4IDhlODk5YjUuLjdiNTczNjIgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvYnVnemlsbGEtdG9vbAorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL2J1Z3ppbGxh
LXRvb2wKQEAgLTcyMSw2ICs3MjEsMTYgQEAgY2xhc3MgTGFuZFBhdGNoZXNGcm9tQ29tbWl0UXVl
dWUoQ29tbWFuZCk6CiAgICAgICAgIHNlbGYuX3RlZV9vdXRwdXRzX3RvX2ZpbGVzKHNlbGYuX2Zp
bGVzX2Zvcl9vdXRwdXQpCiAgICAgICAgIGxvZ19maWxlLmNsb3NlKCkKIAorICAgIGRlZiBfZW5z
dXJlX2J1aWxkZXJzX2FyZV9ncmVlbl9hbmRfdXBfdG9fZGF0ZShzZWxmLCBidWlsZGJvdCk6Cisg
ICAgICAgIGNvcmVfYnVpbGRlcnMgPSBidWlsZGJvdC5jb3JlX2J1aWxkZXJfc3RhdHVzZXMoKQor
ICAgICAgICByZWRfYnVpbGRlcl9uYW1lcyA9IFsnIiVzIicgJSBidWlsZGVyWyduYW1lJ10gZm9y
IGJ1aWxkZXIgaW4gY29yZV9idWlsZGVycyBpZiBub3QgYnVpbGRlclsnaXNfZ3JlZW4nXV0KKyAg
ICAgICAgaWYgcmVkX2J1aWxkZXJfbmFtZXM6CisgICAgICAgICAgICBzZWxmLl91cGRhdGVfc3Rh
dHVzX2FuZF9zbGVlcCgiQnVpbGRlcnMgWyVzXSBhcmUgcmVkLiBTZWUgaHR0cDovL2J1aWxkLndl
YmtpdC5vcmcvd2F0ZXJmYWxsLiIgJSAiLCAiLmpvaW4ocmVkX2J1aWxkZXJfbmFtZXMpKQorCisg
ICAgICAgIG5hbWVzX3dpdGhfcGVuZGluZ19jb3VudCA9IFsnIiVzIiA6ICVzIHBlbmRpbmcnICUg
KGJ1aWxkZXJbJ25hbWUnXSwgYnVpbGRlclsncGVuZGluZ19ydW5zJ10pIGZvciBidWlsZGVyIGlu
IGNvcmVfYnVpbGRlcnMgaWYgYnVpbGRlclsncGVuZGluZ19ydW5zJ10gPiAwXQorICAgICAgICBp
ZiBuYW1lc193aXRoX3BlbmRpbmdfY291bnQ6CisgICAgICAgICAgICBzZWxmLl91cGRhdGVfc3Rh
dHVzX2FuZF9zbGVlcCgiQnVpbGRlcnMgWyVzXSBhcmUgYmVoaW5kLiAgV2FpdGluZy4gU2VlIGh0
dHA6Ly9idWlsZC53ZWJraXQub3JnL3dhdGVyZmFsbC4iICUgIiwgIi5qb2luKG5hbWVzX3dpdGhf
cGVuZGluZ19jb3VudCkpCisKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBvcHRpb25zLCBhcmdzLCB0
b29sKToKICAgICAgICAgaWYgbm90IG9wdGlvbnMuaXNfcmVsYXVuY2g6CiAgICAgICAgICAgICBs
b2coIkNBVVRJT046IGNvbW1pdC1xdWV1ZSB3aWxsIGRpc2NhcmQgYWxsIGxvY2FsIGNoYW5nZXMg
aW4gJXMiICUgdG9vbC5zY20oKS5jaGVja291dF9yb290KQpAQCAtNzQ2LDExICs3NTYsNyBAQCBj
bGFzcyBMYW5kUGF0Y2hlc0Zyb21Db21taXRRdWV1ZShDb21tYW5kKToKICAgICAgICAgICAgIGZp
cnN0X2J1Z19pZCA9IHBhdGNoZXNbMF1bJ2J1Z19pZCddCiAgICAgICAgICAgICBsb2coIiVzIGlu
IGNvbW1pdCBxdWV1ZSBbJXNdIiAlIChwbHVyYWxpemUoJ3BhdGNoJywgbGVuKHBhdGNoZXMpKSwg
IiwgIi5qb2luKHBhdGNoX2lkcykpKQogCi0gICAgICAgICAgICByZWRfYnVpbGRlcnNfbmFtZXMg
PSB0b29sLmJ1aWxkYm90LnJlZF9jb3JlX2J1aWxkZXJzX25hbWVzKCkKLSAgICAgICAgICAgIGlm
IHJlZF9idWlsZGVyc19uYW1lczoKLSAgICAgICAgICAgICAgICByZWRfYnVpbGRlcnNfbmFtZXMg
PSBtYXAobGFtYmRhIG5hbWU6ICciJXMiJyAlIG5hbWUsIHJlZF9idWlsZGVyc19uYW1lcykgIyBB
ZGQgcXVvdGVzIGFyb3VuZCB0aGUgbmFtZXMuCi0gICAgICAgICAgICAgICAgc2VsZi5fdXBkYXRl
X3N0YXR1c19hbmRfc2xlZXAoIkJ1aWxkZXJzIFslc10gYXJlIHJlZC4gU2VlIGh0dHA6Ly9idWls
ZC53ZWJraXQub3JnLiIgJSAiLCAiLmpvaW4ocmVkX2J1aWxkZXJzX25hbWVzKSkKLQorICAgICAg
ICAgICAgc2VsZi5fZW5zdXJlX2J1aWxkZXJzX2FyZV9ncmVlbl9hbmRfdXBfdG9fZGF0ZSh0b29s
LmJ1aWxkYm90KQogICAgICAgICAgICAgc2VsZi5zdGF0dXNfYm90LnVwZGF0ZV9zdGF0dXMoIkxh
bmRpbmcgcGF0Y2hlcyBmcm9tIGJ1ZyAlcy4iICUgZmlyc3RfYnVnX2lkLCBidWdfaWQ9Zmlyc3Rf
YnVnX2lkKQogICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgogICAgICAgICAgICAgIyBEb24n
dCB0cnkgdGVsbCB0aGUgc3RhdHVzIGJvdCwgaW4gY2FzZSB0ZWxsaW5nIGl0IGNhdXNlcyBhbiBl
eGNlcHRpb24uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVpbGRi
b3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVpbGRib3QucHkKaW5kZXggZTk0
OGQ4Yy4uYjNhYzhmMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1
aWxkYm90LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWlsZGJvdC5weQpA
QCAtNjMsNiArNjMsNyBAQCBjbGFzcyBCdWlsZEJvdDoKICAgICAgICAgICAgICMgV2UgZmFpbGVk
IHRvIGZpbmQgYSBsaW5rIGluIHRoZSBmaXJzdCBjZWxsLCBqdXN0IGdpdmUgdXAuCiAgICAgICAg
ICAgICAjIFRoaXMgY2FuIGhhcHBlbiBpZiBhIGJ1aWxkZXIgaXMganVzdC1hZGRlZCwgdGhlIGZp
cnN0IGNlbGwgd2lsbCBqdXN0IGJlICJubyBidWlsZCIKICAgICAgICAgICAgIGJ1aWxkZXJbJ2lz
X2dyZWVuJ10gPSBGYWxzZSAjIE90aGVyIHBhcnRzIG9mIHRoZSBjb2RlIGRlcGVuZCBvbiBpc19n
cmVlbiBiZWluZyBwcmVzZW50LgorICAgICAgICAgICAgYnVpbGRlclsncGVuZGluZ19ydW5zJ10g
PSAwCiAgICAgICAgICAgICByZXR1cm4gYnVpbGRlcgogICAgICAgICByZXZpc2lvbl9zdHJpbmcg
PSBzdGF0dXNfbGluay5zdHJpbmcgIyBXaWxsIGJlIGVpdGhlciBhIHJldmlzaW9uIG51bWJlciBv
ciBhIGJ1aWxkIG51bWJlcgogICAgICAgICAjIElmIHJldmlzaW9uX3N0cmluZyBoYXMgbm9uLWRp
Z2l0cyBhc3N1bWUgaXQncyBub3QgYSByZXZpc2lvbiBudW1iZXIuCkBAIC03MSwzMSArNzIsMjcg
QEAgY2xhc3MgQnVpbGRCb3Q6CiAgICAgICAgICMgV2UgY291bGQgcGFyc2Ugb3V0IHRoZSBidWls
ZCBudW1iZXIgaW5zdGVhZCwgYnV0IGZvciBub3cganVzdCBzdG9yZSB0aGUgVVJMLgogICAgICAg
ICBidWlsZGVyWydidWlsZF91cmwnXSA9IHNlbGYuYnVpbGRib3Rfc2VydmVyX3VybCArIHN0YXR1
c19saW5rWydocmVmJ10KIAotICAgICAgICAjIFdlIGNvdWxkIHBhcnNlIG91dCB0aGUgY3VycmVu
dCBhY3Rpdml0eSB0b28uCisgICAgICAgICMgUGFyc2Ugb3V0IHRoZSBjdXJyZW50IGJvdCBhY3Rp
dml0eS4KKyAgICAgICAgc2VhcmNoX3Jlc3VsdCA9IHJlLnNlYXJjaCgnKFxkKykgcGVuZGluZycs
IHN0YXR1c19jZWxsc1syXS5yZW5kZXJDb250ZW50cygpKQorICAgICAgICBidWlsZGVyWydwZW5k
aW5nX3J1bnMnXSA9IChpbnQoc2VhcmNoX3Jlc3VsdC5ncm91cCgxKSkgaWYgc2VhcmNoX3Jlc3Vs
dCBlbHNlIDApCiAKICAgICAgICAgcmV0dXJuIGJ1aWxkZXIKIAotICAgIGRlZiBfYnVpbGRlcl9z
dGF0dXNlc193aXRoX25hbWVzX21hdGNoaW5nX3JlZ2V4cHMoc2VsZiwgYnVpbGRlcl9zdGF0dXNl
cywgbmFtZV9yZWdleHBzKToKLSAgICAgICAgYnVpbGRlcnMgPSBbXQotICAgICAgICBmb3IgYnVp
bGRlciBpbiBidWlsZGVyX3N0YXR1c2VzOgotICAgICAgICAgICAgZm9yIG5hbWVfcmVnZXhwIGlu
IG5hbWVfcmVnZXhwczoKLSAgICAgICAgICAgICAgICBpZiByZS5tYXRjaChuYW1lX3JlZ2V4cCwg
YnVpbGRlclsnbmFtZSddKToKLSAgICAgICAgICAgICAgICAgICAgYnVpbGRlcnMuYXBwZW5kKGJ1
aWxkZXIpCi0gICAgICAgIHJldHVybiBidWlsZGVycwotCi0gICAgZGVmIHJlZF9jb3JlX2J1aWxk
ZXJzKHNlbGYpOgotICAgICAgICByZWRfYnVpbGRlcnMgPSBbXQotICAgICAgICBmb3IgYnVpbGRl
ciBpbiBzZWxmLl9idWlsZGVyX3N0YXR1c2VzX3dpdGhfbmFtZXNfbWF0Y2hpbmdfcmVnZXhwcyhz
ZWxmLmJ1aWxkZXJfc3RhdHVzZXMoKSwgc2VsZi5jb3JlX2J1aWxkZXJfbmFtZXNfcmVnZXhwcyk6
Ci0gICAgICAgICAgICBpZiBub3QgYnVpbGRlclsnaXNfZ3JlZW4nXToKLSAgICAgICAgICAgICAg
ICByZWRfYnVpbGRlcnMuYXBwZW5kKGJ1aWxkZXIpCi0gICAgICAgIHJldHVybiByZWRfYnVpbGRl
cnMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIF9idWlsZGVyX25hbWVfbWF0Y2hlc19yZWdl
eHBzKGJ1aWxkZXIsIG5hbWVfcmVnZXhwcyk6CisgICAgICAgIGZvciBuYW1lX3JlZ2V4cCBpbiBu
YW1lX3JlZ2V4cHM6CisgICAgICAgICAgICBpZiByZS5tYXRjaChuYW1lX3JlZ2V4cCwgYnVpbGRl
clsnbmFtZSddKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4g
RmFsc2UKIAogICAgIGRlZiByZWRfY29yZV9idWlsZGVyc19uYW1lcyhzZWxmKToKLSAgICAgICAg
cmVkX2J1aWxkZXJzID0gc2VsZi5yZWRfY29yZV9idWlsZGVycygpCi0gICAgICAgIHJldHVybiBt
YXAobGFtYmRhIGJ1aWxkZXI6IGJ1aWxkZXJbJ25hbWUnXSwgcmVkX2J1aWxkZXJzKQorICAgICAg
ICByZXR1cm4gW2J1aWxkZXJbJ25hbWUnXSBmb3IgYnVpbGRlciBpbiBzZWxmLmNvcmVfYnVpbGRl
cl9zdGF0dXNlcygpIGlmIG5vdCBidWlsZGVyWydpc19ncmVlbiddXQogCiAgICAgZGVmIGNvcmVf
YnVpbGRlcnNfYXJlX2dyZWVuKHNlbGYpOgotICAgICAgICByZXR1cm4gbm90IHNlbGYucmVkX2Nv
cmVfYnVpbGRlcnMoKQorICAgICAgICByZXR1cm4gbm90IHNlbGYucmVkX2NvcmVfYnVpbGRlcnNf
bmFtZXMoKQorCisgICAgZGVmIGNvcmVfYnVpbGRlcl9zdGF0dXNlcyhzZWxmKToKKyAgICAgICAg
cmV0dXJuIFtidWlsZGVyIGZvciBidWlsZGVyIGluIHNlbGYuYnVpbGRlcl9zdGF0dXNlcygpIGlm
IHNlbGYuX2J1aWxkZXJfbmFtZV9tYXRjaGVzX3JlZ2V4cHMoYnVpbGRlciwgc2VsZi5jb3JlX2J1
aWxkZXJfbmFtZXNfcmVnZXhwcyldCiAKICAgICBkZWYgYnVpbGRlcl9zdGF0dXNlcyhzZWxmKToK
ICAgICAgICAgYnVpbGRfc3RhdHVzX3VybCA9IHNlbGYuYnVpbGRib3Rfc2VydmVyX3VybCArICdv
bmVfYm94X3Blcl9idWlsZGVyJwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1
bGVzL2J1aWxkYm90X3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy9tb2R1bGVzL2J1
aWxkYm90X3VuaXR0ZXN0LnB5CmluZGV4IGE4NWYyZWEuLmJlMWQ1OTUgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvbW9kdWxlcy9idWlsZGJvdF91bml0dGVzdC5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL21vZHVsZXMvYnVpbGRib3RfdW5pdHRlc3QucHkKQEAgLTQ4LDYgKzQ4
LDEwIEBAIGNsYXNzIEJ1aWxkQm90VGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgPHRkIGNs
YXNzPSJib3giPjxhIGhyZWY9ImJ1aWxkZXJzL1F0JTIwTGludXglMjBSZWxlYXNlIj5RdCBMaW51
eCBSZWxlYXNlPC9hPjwvdGQ+CiAgICAgICA8dGQgYWxpZ249ImNlbnRlciIgY2xhc3M9Ikxhc3RC
dWlsZCBib3ggZmFpbHVyZSI+PGEgaHJlZj0iYnVpbGRlcnMvUXQlMjBMaW51eCUyMFJlbGVhc2Uv
YnVpbGRzLzY1NCI+NDczODM8L2E+PGJyIC8+ZmFpbGVkPGJyIC8+Y29tcGlsZS13ZWJraXQ8L3Rk
PgogICAgICAgPHRkIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJBY3Rpdml0eSBpZGxlIj5pZGxlPC90
ZD4KKyAgICAgIDx0cj4KKyAgICA8dGQgY2xhc3M9ImJveCI+PGEgaHJlZj0iYnVpbGRlcnMvV2lu
ZG93cyUyMFJlbGVhc2UlMjAlMjhUZXN0cyUyOSI+V2luZG93cyBSZWxlYXNlIChUZXN0cyk8L2E+
PC90ZD4KKyAgICAgIDx0ZCBhbGlnbj0iY2VudGVyIiBjbGFzcz0iTGFzdEJ1aWxkIGJveCBmYWls
dXJlIj48YSBocmVmPSJidWlsZGVycy9XaW5kb3dzJTIwUmVsZWFzZSUyMCUyOFRlc3RzJTI5L2J1
aWxkcy81NDg1Ij41MDA3NzwvYT48YnIgLz5mYWlsZWQ8YnIgLz4xIHRlc3QgY2FzZSAoPDElKSBo
YWQgaW5jb3JyZWN0IGxheW91dDwvdGQ+CisgICAgICA8dGQgYWxpZ249ImNlbnRlciIgY2xhc3M9
IkFjdGl2aXR5IGJ1aWxkaW5nIj5idWlsZGluZzxiciAvPkVUQSBpbjxiciAvPn4gMSBtaW5zPGJy
IC8+YXQgMTY6Mjk8YnIgLz4xMSBwZW5kaW5nPC90ZD4KICAgICA8L3RhYmxlPgogJycnCiAgICAg
X2V4cGVjdGVkX2V4YW1wbGVfb25lX2JveF9wYXJzaW5ncyA9IFsKQEAgLTU2LDE5ICs2MCwzMCBA
QCBjbGFzcyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAgICAgJ2J1
aWxkX3VybCc6IHUnaHR0cDovL2J1aWxkLndlYmtpdC5vcmcvYnVpbGRlcnMvV2luZG93cyUyMERl
YnVnJTIwJTI4VGVzdHMlMjkvYnVpbGRzLzM2OTMnLAogICAgICAgICAgICAgJ2lzX2dyZWVuJzog
VHJ1ZSwKICAgICAgICAgICAgICduYW1lJzogdSdXaW5kb3dzIERlYnVnIChUZXN0cyknLAotICAg
ICAgICAgICAgJ2J1aWx0X3JldmlzaW9uJzogNDczODAKKyAgICAgICAgICAgICdidWlsdF9yZXZp
c2lvbic6IDQ3MzgwLAorICAgICAgICAgICAgJ3BlbmRpbmdfcnVucycgOiAwLAogICAgICAgICB9
LAogICAgICAgICB7CiAgICAgICAgICAgICAnYnVpbGRlcl91cmwnOiB1J2h0dHA6Ly9idWlsZC53
ZWJraXQub3JnL2J1aWxkZXJzL1Nub3dMZW9wYXJkJTIwSW50ZWwlMjBSZWxlYXNlJywKICAgICAg
ICAgICAgICdpc19ncmVlbic6IEZhbHNlLAogICAgICAgICAgICAgJ25hbWUnOiB1J1Nub3dMZW9w
YXJkIEludGVsIFJlbGVhc2UnLAorICAgICAgICAgICAgJ3BlbmRpbmdfcnVucycgOiAwLAogICAg
ICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgICAnYnVpbGRlcl91cmwnOiB1J2h0dHA6Ly9i
dWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1F0JTIwTGludXglMjBSZWxlYXNlJywKICAgICAgICAg
ICAgICdidWlsZF91cmwnOiB1J2h0dHA6Ly9idWlsZC53ZWJraXQub3JnL2J1aWxkZXJzL1F0JTIw
TGludXglMjBSZWxlYXNlL2J1aWxkcy82NTQnLAogICAgICAgICAgICAgJ2lzX2dyZWVuJzogRmFs
c2UsCiAgICAgICAgICAgICAnbmFtZSc6IHUnUXQgTGludXggUmVsZWFzZScsCi0gICAgICAgICAg
ICAnYnVpbHRfcmV2aXNpb24nOiA0NzM4MworICAgICAgICAgICAgJ2J1aWx0X3JldmlzaW9uJzog
NDczODMsCisgICAgICAgICAgICAncGVuZGluZ19ydW5zJyA6IDAsCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICdidWlsZGVyX3VybCc6IHUnaHR0cDovL2J1aWxkLndlYmtpdC5v
cmcvYnVpbGRlcnMvV2luZG93cyUyMFJlbGVhc2UlMjAlMjhUZXN0cyUyOScsCisgICAgICAgICAg
ICAnYnVpbGRfdXJsJzogdSdodHRwOi8vYnVpbGQud2Via2l0Lm9yZy9idWlsZGVycy9XaW5kb3dz
JTIwUmVsZWFzZSUyMCUyOFRlc3RzJTI5L2J1aWxkcy81NDg1JywKKyAgICAgICAgICAgICdpc19n
cmVlbic6IEZhbHNlLAorICAgICAgICAgICAgJ25hbWUnOiB1J1dpbmRvd3MgUmVsZWFzZSAoVGVz
dHMpJywKKyAgICAgICAgICAgICdidWlsdF9yZXZpc2lvbic6IDUwMDc3LAorICAgICAgICAgICAg
J3BlbmRpbmdfcnVucycgOiAxMSwKICAgICAgICAgfSwKICAgICBdCiAKQEAgLTEyNyw3ICsxNDIs
NyBAQCBjbGFzcyBCdWlsZEJvdFRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFRo
aXMgdGVzdCBzaG91bGQgcHJvYmFibHkgYmUgdXBkYXRlZCBpZiB0aGUgZGVmYXVsdCByZWdleHAg
bGlzdCBjaGFuZ2VzCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWxzKGJ1aWxkYm90LmNvcmVfYnVp
bGRlcl9uYW1lc19yZWdleHBzLCBuYW1lX3JlZ2V4cHMpCiAKLSAgICAgICAgYnVpbGRlcnMgPSBi
dWlsZGJvdC5fYnVpbGRlcl9zdGF0dXNlc193aXRoX25hbWVzX21hdGNoaW5nX3JlZ2V4cHMoZXhh
bXBsZV9idWlsZGVycywgbmFtZV9yZWdleHBzKQorICAgICAgICBidWlsZGVycyA9IFtidWlsZGVy
IGZvciBidWlsZGVyIGluIGV4YW1wbGVfYnVpbGRlcnMgaWYgYnVpbGRib3QuX2J1aWxkZXJfbmFt
ZV9tYXRjaGVzX3JlZ2V4cHMoYnVpbGRlciwgbmFtZV9yZWdleHBzKV0KICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbHMoYnVpbGRlcnMsIGV4cGVjdGVkX2J1aWxkZXJzKQogCiBpZiBfX25hbWVfXyA9
PSAnX19tYWluX18nOg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45834</attachid>
            <date>2010-01-04 14:46:13 -0800</date>
            <delta_ts>2010-01-04 15:04:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30098-20100104144613.patch</filename>
            <type>text/plain</type>
            <size>2558</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNTE3M2JlLi42Y2E5NjNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEt
MDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjb21taXQtcXVldWUgY2FuIHdyb25nbHkgcmVq
ZWN0IHBhdGNoZXMgaWYgdGhlIGJ1aWxkYm90cyBhcmUgYmVoaW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA5OAorCisgICAgICAgIENoZWNrIHRv
IG1ha2Ugc3VyZSB3ZSBjYW4gY3VycmVudGx5IGJ1aWxkIGFuZCB0ZXN0IGJlZm9yZSB0cnlpbmcg
dG8KKyAgICAgICAgbGFuZCBhIHBhdGNoLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9xdWV1ZXMucHk6CisKIDIwMTAtMDEtMDQgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhIHRlc3QgaGFybmVzcyBmb3IgdGhlIFdpbmRvd3MgV2Vi
S2l0IEFQSSwgYW5kIGEgZmV3IHRlc3RzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvcXVldWVzLnB5CmluZGV4IGVmMTkxNDUuLjQ3N2IwMWIgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CkBAIC0xNDUsMTkg
KzE0NSwyOSBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VF
cnJvckhhbmRsZXIpOgogICAgICAgICBzZWxmLmxvZ19wcm9ncmVzcyhbcGF0Y2hbJ2lkJ10gZm9y
IHBhdGNoIGluIHBhdGNoZXNdKQogICAgICAgICByZXR1cm4gcGF0Y2hlc1swXQogCisgICAgZGVm
IF9jYW5fYnVpbGRfYW5kX3Rlc3Qoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNl
bGYucnVuX2J1Z3ppbGxhX3Rvb2woWyJidWlsZC1hbmQtdGVzdCIsICItLWZvcmNlLWNsZWFuIiwg
Ii0tbm9uLWludGVyYWN0aXZlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0Il0pCisg
ICAgICAgIGV4Y2VwdCBTY3JpcHRFcnJvciwgZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICByZXR1cm4gVHJ1ZQorCiAgICAgZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19p
dGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmVkX2J1aWxkZXJzX25hbWVzID0gc2VsZi50b29s
LmJ1aWxkYm90LnJlZF9jb3JlX2J1aWxkZXJzX25hbWVzKCkKICAgICAgICAgaWYgcmVkX2J1aWxk
ZXJzX25hbWVzOgogICAgICAgICAgICAgcmVkX2J1aWxkZXJzX25hbWVzID0gbWFwKGxhbWJkYSBu
YW1lOiAiXCIlc1wiIiAlIG5hbWUsIHJlZF9idWlsZGVyc19uYW1lcykgIyBBZGQgcXVvdGVzIGFy
b3VuZCB0aGUgbmFtZXMuCiAgICAgICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJCdWlsZGVy
cyBbJXNdIGFyZSByZWQuIFNlZSBodHRwOi8vYnVpbGQud2Via2l0Lm9yZyIgJSAiLCAiLmpvaW4o
cmVkX2J1aWxkZXJzX25hbWVzKSwgTm9uZSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAg
ICAgICBpZiBub3Qgc2VsZi5fY2FuX2J1aWxkX2FuZF90ZXN0KCk6CisgICAgICAgICAgICBzZWxm
Ll91cGRhdGVfc3RhdHVzKCJVbmFibGVkIHRvIHN1Y2Nlc3NmdWxseSBidWlsZCBhbmQgdGVzdCIs
IE5vbmUpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKICAgICAgICAgc2VsZi5fdXBkYXRlX3N0
YXR1cygiTGFuZGluZyBwYXRjaCIsIHBhdGNoKQogICAgICAgICByZXR1cm4gVHJ1ZQogCiAgICAg
ZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKICAgICAgICAgdHJ5OgogICAgICAg
ICAgICAgc2VsZi5fY2Nfd2F0Y2hlcnMocGF0Y2hbImJ1Z19pZCJdKQotICAgICAgICAgICAgc2Vs
Zi5ydW5fYnVnemlsbGFfdG9vbChbImxhbmQtYXR0YWNobWVudCIsICItLWZvcmNlLWNsZWFuIiwg
Ii0tbm9uLWludGVyYWN0aXZlIiwgIi0tcGFyZW50LWNvbW1hbmQ9Y29tbWl0LXF1ZXVlIiwgIi0t
YnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0IiwgcGF0Y2hbImlkIl1dKQorICAgICAgICAgICAg
c2VsZi5ydW5fYnVnemlsbGFfdG9vbChbImxhbmQtYXR0YWNobWVudCIsICItLWZvcmNlLWNsZWFu
IiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tbm8tdXBkYXRlIiwgIi0tcGFyZW50LWNvbW1hbmQ9
Y29tbWl0LXF1ZXVlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0IiwgcGF0Y2hbImlk
Il1dKQogICAgICAgICAgICAgc2VsZi5fZGlkX3Bhc3MocGF0Y2gpCiAgICAgICAgIGV4Y2VwdCBT
Y3JpcHRFcnJvciwgZToKICAgICAgICAgICAgIHNlbGYuX2RpZF9mYWlsKHBhdGNoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>45835</attachid>
            <date>2010-01-04 15:04:07 -0800</date>
            <delta_ts>2010-01-04 15:06:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-30098-20100104150406.patch</filename>
            <type>text/plain</type>
            <size>3033</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNTE3M2JlLi42Y2E5NjNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTAtMDEt
MDQgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBjb21taXQtcXVldWUgY2FuIHdyb25nbHkgcmVq
ZWN0IHBhdGNoZXMgaWYgdGhlIGJ1aWxkYm90cyBhcmUgYmVoaW5kCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMDA5OAorCisgICAgICAgIENoZWNrIHRv
IG1ha2Ugc3VyZSB3ZSBjYW4gY3VycmVudGx5IGJ1aWxkIGFuZCB0ZXN0IGJlZm9yZSB0cnlpbmcg
dG8KKyAgICAgICAgbGFuZCBhIHBhdGNoLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9j
b21tYW5kcy9xdWV1ZXMucHk6CisKIDIwMTAtMDEtMDQgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhIHRlc3QgaGFybmVzcyBmb3IgdGhlIFdpbmRvd3MgV2Vi
S2l0IEFQSSwgYW5kIGEgZmV3IHRlc3RzCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRz
L3dlYmtpdHB5L2NvbW1hbmRzL3F1ZXVlcy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvY29tbWFuZHMvcXVldWVzLnB5CmluZGV4IGVmMTkxNDUuLjczNGZlZjMgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbWFuZHMvcXVldWVzLnB5CkBAIC0xNDUsMTkg
KzE0NSwzOSBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0cmFjdFF1ZXVlLCBTdGVwU2VxdWVuY2VF
cnJvckhhbmRsZXIpOgogICAgICAgICBzZWxmLmxvZ19wcm9ncmVzcyhbcGF0Y2hbJ2lkJ10gZm9y
IHBhdGNoIGluIHBhdGNoZXNdKQogICAgICAgICByZXR1cm4gcGF0Y2hlc1swXQogCi0gICAgZGVm
IHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19pdGVtKHNlbGYsIHBhdGNoKToKKyAgICBkZWYgX2Nh
bl9idWlsZF9hbmRfdGVzdChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5y
dW5fYnVnemlsbGFfdG9vbChbImJ1aWxkLWFuZC10ZXN0IiwgIi0tZm9yY2UtY2xlYW4iLCAiLS1u
b24taW50ZXJhY3RpdmUiLCAiLS1idWlsZC1zdHlsZT1ib3RoIiwgIi0tcXVpZXQiXSkKKyAgICAg
ICAgZXhjZXB0IFNjcmlwdEVycm9yLCBlOgorICAgICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1
cygiVW5hYmxlZCB0byBzdWNjZXNzZnVsbHkgYnVpbGQgYW5kIHRlc3QiLCBOb25lKQorICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICBkZWYgX2J1aWxk
ZXJzX2FyZV9ncmVlbihzZWxmKToKICAgICAgICAgcmVkX2J1aWxkZXJzX25hbWVzID0gc2VsZi50
b29sLmJ1aWxkYm90LnJlZF9jb3JlX2J1aWxkZXJzX25hbWVzKCkKICAgICAgICAgaWYgcmVkX2J1
aWxkZXJzX25hbWVzOgogICAgICAgICAgICAgcmVkX2J1aWxkZXJzX25hbWVzID0gbWFwKGxhbWJk
YSBuYW1lOiAiXCIlc1wiIiAlIG5hbWUsIHJlZF9idWlsZGVyc19uYW1lcykgIyBBZGQgcXVvdGVz
IGFyb3VuZCB0aGUgbmFtZXMuCiAgICAgICAgICAgICBzZWxmLl91cGRhdGVfc3RhdHVzKCJCdWls
ZGVycyBbJXNdIGFyZSByZWQuIFNlZSBodHRwOi8vYnVpbGQud2Via2l0Lm9yZyIgJSAiLCAiLmpv
aW4ocmVkX2J1aWxkZXJzX25hbWVzKSwgTm9uZSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQor
ICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgZGVmIHNob3VsZF9wcm9jZWVkX3dpdGhfd29ya19p
dGVtKHNlbGYsIHBhdGNoKToKKyAgICAgICAgaWYgbm90IHNlbGYuX2J1aWxkZXJzX2FyZV9ncmVl
bigpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBzZWxmLl9jYW5f
YnVpbGRfYW5kX3Rlc3QoKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBu
b3Qgc2VsZi5fYnVpbGRlcnNfYXJlX2dyZWVuKCk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UK
ICAgICAgICAgc2VsZi5fdXBkYXRlX3N0YXR1cygiTGFuZGluZyBwYXRjaCIsIHBhdGNoKQogICAg
ICAgICByZXR1cm4gVHJ1ZQogCiAgICAgZGVmIHByb2Nlc3Nfd29ya19pdGVtKHNlbGYsIHBhdGNo
KToKICAgICAgICAgdHJ5OgogICAgICAgICAgICAgc2VsZi5fY2Nfd2F0Y2hlcnMocGF0Y2hbImJ1
Z19pZCJdKQotICAgICAgICAgICAgc2VsZi5ydW5fYnVnemlsbGFfdG9vbChbImxhbmQtYXR0YWNo
bWVudCIsICItLWZvcmNlLWNsZWFuIiwgIi0tbm9uLWludGVyYWN0aXZlIiwgIi0tcGFyZW50LWNv
bW1hbmQ9Y29tbWl0LXF1ZXVlIiwgIi0tYnVpbGQtc3R5bGU9Ym90aCIsICItLXF1aWV0IiwgcGF0
Y2hbImlkIl1dKQorICAgICAgICAgICAgIyBXZSBwYXNzIC0tbm8tdXBkYXRlIGhlcmUgYmVjYXVz
ZSB3ZSd2ZSBhbHJlYWR5IHZhbGlkYXRlZAorICAgICAgICAgICAgIyB0aGF0IHRoZSBjdXJyZW50
IHJldmlzaW9uIGFjdHVhbGx5IGJ1aWxkcyBhbmQgcGFzc2VzIHRoZSB0ZXN0cy4KKyAgICAgICAg
ICAgICMgSWYgd2UgdXBkYXRlLCB3ZSByaXNrIG1vdmluZyB0byBhIHJldmlzaW9uIHRoYXQgZG9l
c24ndCEKKyAgICAgICAgICAgIHNlbGYucnVuX2J1Z3ppbGxhX3Rvb2woWyJsYW5kLWF0dGFjaG1l
bnQiLCAiLS1mb3JjZS1jbGVhbiIsICItLW5vbi1pbnRlcmFjdGl2ZSIsICItLW5vLXVwZGF0ZSIs
ICItLXBhcmVudC1jb21tYW5kPWNvbW1pdC1xdWV1ZSIsICItLWJ1aWxkLXN0eWxlPWJvdGgiLCAi
LS1xdWlldCIsIHBhdGNoWyJpZCJdXSkKICAgICAgICAgICAgIHNlbGYuX2RpZF9wYXNzKHBhdGNo
KQogICAgICAgICBleGNlcHQgU2NyaXB0RXJyb3IsIGU6CiAgICAgICAgICAgICBzZWxmLl9kaWRf
ZmFpbChwYXRjaCkK
</data>
<flag name="review"
          id="27975"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>