<?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>95376</bug_id>
          
          <creation_ts>2012-08-29 14:02:13 -0700</creation_ts>
          <short_desc>Dromaeo jquery DOM modification tests run out of memory and crash in current WebKit</short_desc>
          <delta_ts>2012-09-25 15:52:17 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc>http://dromaeo.com/?modify-jquery</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93185</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Boris Zbarsky">bzbarsky</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>haraken</cc>
    
    <cc>morrita</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yosin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>707837</commentid>
    <comment_count>0</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 14:02:13 -0700</bug_when>
    <thetext>This is almost certainly a regression you guys introduced at some point; this worked the last time I ran WebKit on dromaeo.  Granted, that was a while ago (12 months or more).

In any case, loading the url in the url field and running it will eat all your memory and crash.  I see this in a WebKit nightly on Mac, Chrome on Mac, Chrome on Windows.

Profile of the WebKit nightly on Mac shows mostly layout and some DOM event firing; no idea why memory is being gobbled like no tomorrow.

Note bug 88739 and bug 90598 which are probably about the same thing in your own automation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707847</commentid>
    <comment_count>1</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 14:11:47 -0700</bug_when>
    <thetext>Though interestingly, my local copy of this test, pulled from the dromaeo repository many moons ago, works fine in WebKit.

The only non-whitespae difference I see between the two is that my local version is using jquery 1.2.6 (yes, it&apos;s old), while the one on dromaeo.com uses jquery 1.6.4.  Pointing my local version at jquery 1.6.4 makes it fail just like the dromaeo.com version.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707864</commentid>
    <comment_count>2</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 14:22:38 -0700</bug_when>
    <thetext>So it&apos;s possible that it&apos;s not a regression in WebKit as much as a problem with something jquery 1.6.4 is doing.

I also tried jquery 1.8.0 (current stable tip) and the same OOM happens.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707867</commentid>
    <comment_count>3</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 14:24:05 -0700</bug_when>
    <thetext>One other thing confusing me:  I think this test is operating on disconnected subtrees.  Why is there layout involved at all?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>707992</commentid>
    <comment_count>4</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-29 16:06:14 -0700</bug_when>
    <thetext>Thanks for analysis, Boris!

(In reply to comment #2)
&gt; So it&apos;s possible that it&apos;s not a regression in WebKit as much as a problem with something jquery 1.6.4 is doing.
&gt; 
&gt; I also tried jquery 1.8.0 (current stable tip) and the same OOM happens.

The last time we analyzed, the problem with the test itself. It doesn&apos;t garbage remove the container node it adds, so the test ends up consuming ~4GB of RAM as we run more &quot;runs&quot;. I bet the problem is the newer version of jquery is that it&apos;s faster, and WebKit is able to run more &quot;runs&quot;, consuming more memory.

(In reply to comment #3)
&gt; One other thing confusing me:  I think this test is operating on disconnected subtrees.  Why is there layout involved at all?

It&apos;s connected to the document :( But how are you determining whether there is a layout or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708131</commentid>
    <comment_count>5</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 18:06:00 -0700</bug_when>
    <thetext>&gt; It doesn&apos;t garbage remove the container node it adds

Which node are you looking at in the test?  The &quot;div&quot;?  I guess that might be in the document, yes....

&gt; I bet the problem is the newer version of jquery is that it&apos;s faster, and
&gt; WebKit is able to run more &quot;runs&quot;, consuming more memory.

That&apos;s plausible; I tried dropping the time each test runs for to 100ms, and then WebKit completes the test, and the scores are higher than with the old jquery.

OK, so it sounds like we should consider changing the test here to test something more reasonable.

&gt; But how are you determining whether there is a layout or not?

I was looking at a profile, remember?  ;)  There was certainly layout-related stuff in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708140</commentid>
    <comment_count>6</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 18:09:31 -0700</bug_when>
    <thetext>So looking at the test some more... on my hardware, the 100ms version runs at about 30000 runs/s in WebKit.  So it would be adding about 120000 elements to the DOM.  That really doesn&apos;t seem like it should use up gigabytes of memory.  There are web pages that are bigger than that (e.g. the HTML5 single-page spec).

Ryosuke, would you be willing to double-check the numbers I&apos;m seeing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708152</commentid>
    <comment_count>7</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 18:14:18 -0700</bug_when>
    <thetext>Oh, the numbers are off because each jquery API call inserts something like 50 elements, not just one.  One for each div.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708163</commentid>
    <comment_count>8</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-29 18:26:36 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Oh, the numbers are off because each jquery API call inserts something like 50 elements, not just one.  One for each div.

If I remember correctly, the test doubles the number of nodes in each run. So the number of nodes grows exponentially.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708182</commentid>
    <comment_count>9</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 18:40:20 -0700</bug_when>
    <thetext>I don&apos;t see doubling going on here.  The same exact thing is being appended/prepended on each run:

  elemStr = &quot;&lt;strong&gt;some text&lt;/strong&gt;&quot;;

I just made local changes to the test to clear out the stuff it adds.  With those changes, and numTests=1, WebKit ends up with about 180000 nodes in the document (from the last set of append() calls, which I&apos;m not bothering to clear out) and completes the test.  180000 is a good match for the 3600 runs/s it&apos;s scoring on the append() test, given there are 50 divs involved.  So that sounds like the full 5-test run would add/remove about a million nodes to the DOM.  I agree that seems ... excessive.

I wonder whether it would make sense to clear out the kids we added every so many iterations, just as part of the test...  That would certainly confound the measurement of the &quot;append&quot; or whatnot performance, such as it is, though.  Ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708185</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-29 18:44:48 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I wonder whether it would make sense to clear out the kids we added every so many iterations, just as part of the test...  That would certainly confound the measurement of the &quot;append&quot; or whatnot performance, such as it is, though.  Ideas?

I differ that question to haraken &amp; morrita.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708187</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-08-29 18:48:25 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; I wonder whether it would make sense to clear out the kids we added every so many iterations, just as part of the test...  That would certainly confound the measurement of the &quot;append&quot; or whatnot performance, such as it is, though.  Ideas?
&gt; 
&gt; I differ that question to haraken &amp; morrita.

I&apos;ve been suggesting the same approach:) rniwa wants to upstream the fix to Dromaeo itself because it&apos;s a &quot;bug&quot; of Dromaeo.

rniwa: WDYT?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708190</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-29 18:53:12 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; (In reply to comment #9)
&gt; &gt; &gt; I wonder whether it would make sense to clear out the kids we added every so many iterations, just as part of the test...  That would certainly confound the measurement of the &quot;append&quot; or whatnot performance, such as it is, though.  Ideas?
&gt; &gt; 
&gt; &gt; I differ that question to haraken &amp; morrita.
&gt; 
&gt; I&apos;ve been suggesting the same approach:) rniwa wants to upstream the fix to Dromaeo itself because it&apos;s a &quot;bug&quot; of Dromaeo.

Sounds like we should do that then.

Boris, would you be able to make the change upstream? We can re-import the dromaeo tests or cherry pick the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708208</commentid>
    <comment_count>13</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 19:05:18 -0700</bug_when>
    <thetext>I don&apos;t have access to the upstream repo, but I can find out who does.

Do you guys want to write the diff, or should I?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708209</commentid>
    <comment_count>14</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-29 19:05:44 -0700</bug_when>
    <thetext>And I agree we want to fix this upstream, for sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708212</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-29 19:08:10 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; And I agree we want to fix this upstream, for sure.

I&apos;m indifferent but as my name indicates, I won&apos;t be able to write a patch myself until 9/10. Maybe morrita or haraken would be interested. If not, I&apos;d really appreciate it if you created a patch :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708300</commentid>
    <comment_count>16</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-08-29 22:13:59 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; And I agree we want to fix this upstream, for sure.
&gt; 
&gt; I&apos;m indifferent but as my name indicates, I won&apos;t be able to write a patch myself until 9/10. Maybe morrita or haraken would be interested. If not, I&apos;d really appreciate it if you created a patch :)
Dromaeo is hosted on github. So we can just fork
it and send a pullreq for the fix :-)

I&apos;ll do it within days if I have time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708302</commentid>
    <comment_count>17</comment_count>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-08-29 22:14:54 -0700</bug_when>
    <thetext>Anyway, thank you folks for the investigation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>708538</commentid>
    <comment_count>18</comment_count>
    <who name="Boris Zbarsky">bzbarsky</who>
    <bug_when>2012-08-30 05:55:43 -0700</bug_when>
    <thetext>I was thinking the best way to fix without changing the timing is to actually change the harness to allow passing in a cleanup function and cleanup iteration count in addition to the test function, then not counting the time spent in cleanup.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725078</commentid>
    <comment_count>19</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-20 19:06:41 -0700</bug_when>
    <thetext>*** Bug 88739 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725080</commentid>
    <comment_count>20</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-20 19:06:49 -0700</bug_when>
    <thetext>*** Bug 90598 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725236</commentid>
    <comment_count>21</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-21 00:47:40 -0700</bug_when>
    <thetext>Uploaded a patch on https://github.com/jeresig/dromaeo/pull/12.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725239</commentid>
    <comment_count>22</comment_count>
      <attachid>165072</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-21 00:50:22 -0700</bug_when>
    <thetext>Created attachment 165072
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725240</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 00:53:56 -0700</bug_when>
    <thetext>Attachment 165072 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;PerformanceTests/ChangeLog&apos;, u&apos;Performance...&quot; exit_code: 1
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:15:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:32:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:35:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:36:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:37:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:40:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:43:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:44:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:45:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:48:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:50:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:51:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:52:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:53:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:56:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:59:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:60:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:61:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:64:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:67:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:68:  Line contains tab character.  [whitespace/tab] [5]
PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:69:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 22 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725722</commentid>
    <comment_count>24</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-21 12:47:00 -0700</bug_when>
    <thetext>The style error is expected as Dromaeo uses hard tab as opposed to soft tab.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727188</commentid>
    <comment_count>25</comment_count>
      <attachid>165072</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2012-09-24 18:54:04 -0700</bug_when>
    <thetext>Comment on attachment 165072
Fixes the bug

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

&gt;&gt; PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:32
&gt;&gt; +	var runs = 0;
&gt; 
&gt; Line contains tab character.  [whitespace/tab] [5]

Setting 0 here doesn&apos;t make sense. test() queues the given function up and run it later.
See weberunner.js.

I would add an optional parameter to specify the cleanup function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727211</commentid>
    <comment_count>26</comment_count>
      <attachid>165072</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-24 19:50:53 -0700</bug_when>
    <thetext>Comment on attachment 165072
Fixes the bug

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

&gt;&gt;&gt; PerformanceTests/Dromaeo/resources/dromaeo/web/tests/jslib-modify-jquery.html:32
&gt;&gt;&gt; +	var runs = 0;
&gt;&gt; 
&gt;&gt; Line contains tab character.  [whitespace/tab] [5]
&gt; 
&gt; Setting 0 here doesn&apos;t make sense. test() queues the given function up and run it later.
&gt; See weberunner.js.
&gt; 
&gt; I would add an optional parameter to specify the cleanup function.

That&apos;s a good point. On the other hand, it&apos;s probably fine not to reset runs.
The problem with adding an optional parameter here is that, upstream Dromaeo changes will become much bigger (it has 2-3 different kinds of test() ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728039</commentid>
    <comment_count>27</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-09-25 15:52:17 -0700</bug_when>
    <thetext>Skipped the test in r129564.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165072</attachid>
            <date>2012-09-21 00:50:22 -0700</date>
            <delta_ts>2012-09-24 19:50:53 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-95376-20120921004947.patch</filename>
            <type>text/plain</type>
            <size>2697</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFBlcmZvcm1hbmNlVGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFBlcmZvcm1h
bmNlVGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMjkyMDApCisrKyBQZXJmb3JtYW5jZVRlc3Rz
L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDEyLTA5LTIxICBS
eW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIERyb21hZW8ganF1ZXJ5
IERPTSBtb2RpZmljYXRpb24gdGVzdHMgcnVuIG91dCBvZiBtZW1vcnkgYW5kIGNyYXNoIGluIGN1
cnJlbnQgV2ViS2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NTM3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSBub2RlcyBhZGRlZCBieSBlYWNoIHRlc3QgY2FzZSBldmVyeSAxMDAwIHJ1bnMg
c28gdGhhdCB3ZSBkb24ndCBlbmQgdXAgd2l0aAorICAgICAgICAxZSs3IG9yIDFlKzggbm9kZXMg
YW5kIHVzZSB1cCB0aGUgZW50aXJlIDRHQiBvZiBSQU0gaW4gQ2hyb21pdW0uCisKKyAgICAgICAg
VG8gZG8gdGhpcywgY2hhbmdlZCB0aGUgbmFtZSBvZiBlbGVtZW50IHdlIGluc2VydCBmcm9tIHN0
cm9uZyB0byBzdHJpa2Ugc28gdGhhdAorICAgICAgICB3ZSBjYW4gcXVpY2tseSBlbnVtZXJhdGUg
YWxsIHRoZSBlbGVtZW50cyB0byByZW1vdmUgKHN0cmlrZSBkb2Vzbid0IGFwcGVhciBlbHNld2hl
cmUgaW4gdGhlIGRvY3VtZW50KS4KKworICAgICAgICBBbHNvLCBjYWxsIGFmdGVyKCkgaW4gdGhl
IHRlc3QgY2FzZSBsYWJlbGVkICJqUXVlcnkgLSBhZnRlcigpIi4KKworICAgICAgICBUaGlzIGNo
YW5nZSBpcyBiZWluZyBjb250cmlidXRlZCBiYWNrIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9qZXJl
c2lnL2Ryb21hZW8vcHVsbC8xMi4KKworICAgICAgICAqIERyb21hZW8vcmVzb3VyY2VzL2Ryb21h
ZW8vd2ViL3Rlc3RzL2pzbGliLW1vZGlmeS1qcXVlcnkuaHRtbDoKKwogMjAxMi0wOS0yMCAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXN1bHRzIHBhZ2Ugc2hv
dWxkIHNob3cgaW5kaXZpc3VhbCB2YWx1ZQpJbmRleDogUGVyZm9ybWFuY2VUZXN0cy9Ecm9tYWVv
L3Jlc291cmNlcy9kcm9tYWVvL3dlYi90ZXN0cy9qc2xpYi1tb2RpZnktanF1ZXJ5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gUGVyZm9ybWFuY2VUZXN0cy9Ecm9tYWVvL3Jlc291cmNlcy9kcm9tYWVvL3dl
Yi90ZXN0cy9qc2xpYi1tb2RpZnktanF1ZXJ5Lmh0bWwJKHJldmlzaW9uIDEyOTE2NCkKKysrIFBl
cmZvcm1hbmNlVGVzdHMvRHJvbWFlby9yZXNvdXJjZXMvZHJvbWFlby93ZWIvdGVzdHMvanNsaWIt
bW9kaWZ5LWpxdWVyeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw3ICsxMiw3IEBAIHZhciBy
ZXQsIHRtcCwgZGl2LCBhLCBkZDsKIHZhciBodG1sID0gZG9jdW1lbnQuYm9keS5pbm5lckhUTUws
CiAJZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpLAogCWVsZW0yID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgic3Ryb25nIiksCi0JZWxlbVN0ciA9ICI8c3Ryb25nPnNvbWUgdGV4
dDwvc3Ryb25nPiI7CisJZWxlbVN0ciA9ICI8c3RyaWtlPnNvbWUgdGV4dDwvc3RyaWtlPiI7CiAK
IAlwcmVwKGZ1bmN0aW9uKCl7CiAJCWEgPSBqUXVlcnkoImEiKTsKQEAgLTI5LDI0ICsyOSw0NCBA
QCB2YXIgaHRtbCA9IGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MLAogCX0pOwogCSovCiAKKwl2YXIg
cnVucyA9IDA7CiAJdGVzdCgialF1ZXJ5IC0gaHRtbCgpIiwgZnVuY3Rpb24oKXsKIAkJZGQuaHRt
bCggZWxlbVN0ciApOworCQlydW5zKys7CisJCWlmIChydW5zICUgMTAwMCA9PSAwKQorCQkJalF1
ZXJ5KCdzdHJpa2UnKS5yZW1vdmUoKTsKIAl9KTsKIAorCXJ1bnMgPSAwOwogCXRlc3QoImpRdWVy
eSAtIGJlZm9yZSgpIiwgZnVuY3Rpb24oKXsKIAkJZGl2LmJlZm9yZSggZWxlbVN0ciApOworCQly
dW5zKys7CisJCWlmIChydW5zICUgMTAwMCA9PSAwKQorCQkJalF1ZXJ5KCdzdHJpa2UnKS5yZW1v
dmUoKTsKIAl9KTsKIAorCXJ1bnMgPSAwOwogCXRlc3QoImpRdWVyeSAtIGFmdGVyKCkiLCBmdW5j
dGlvbigpewotCQlkaXYuYmVmb3JlKCBlbGVtU3RyICk7CisJCWRpdi5hZnRlciggZWxlbVN0ciAp
OworCQlydW5zKys7CisJCWlmIChydW5zICUgMTAwMCA9PSAwKQorCQkJalF1ZXJ5KCdzdHJpa2Un
KS5yZW1vdmUoKTsKIAl9KTsKIAorCXJ1bnMgPSAwOwogCXRlc3QoImpRdWVyeSAtIHByZXBlbmQo
KSIsIGZ1bmN0aW9uKCl7CiAJCWRpdi5wcmVwZW5kKCBlbGVtU3RyICk7CisJCXJ1bnMrKzsKKwkJ
aWYgKHJ1bnMgJSAxMDAwID09IDApCisJCQlqUXVlcnkoJ3N0cmlrZScpLnJlbW92ZSgpOwogCX0p
OwogCisJcnVucyA9IDA7CiAJdGVzdCgialF1ZXJ5IC0gYXBwZW5kKCkiLCBmdW5jdGlvbigpewog
CQlkaXYuYXBwZW5kKCBlbGVtU3RyICk7CisJCXJ1bnMrKzsKKwkJaWYgKHJ1bnMgJSAxMDAwID09
IDApCisJCQlqUXVlcnkoJ3N0cmlrZScpLnJlbW92ZSgpOwogCX0pOwogCiAJLyogLy8gTmVlZCBh
IGdvb2Qgd2F5IHRvIHRlc3QK
</data>
<flag name="review"
          id="177010"
          type_id="1"
          status="-"
          setter="morrita"
    />
    <flag name="commit-queue"
          id="177559"
          type_id="3"
          status="-"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>