<?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>31615</bug_id>
          
          <creation_ts>2009-11-17 22:24:21 -0800</creation_ts>
          <short_desc>REGRESSION(r50919) Introduced a non-thread-safe refcounting in ScriptExecutionContext::postTaskToMainThread</short_desc>
          <delta_ts>2009-11-18 12:44:36 -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>WebCore JavaScript</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>
          
          <blocked>30835</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Dmitry Titov">dimich</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>levin</cc>
    
    <cc>oliver</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>164456</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-17 22:24:21 -0800</bug_when>
    <thetext>Using RefPtr on both sides of thread boundary have caused significant part of recent flakiness of xmlhttprequest/workers tests. Need to remove RefPtr as it was implemented in Document before r50919.

This explains at least some flakiness captured in bug 30835.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164463</commentid>
    <comment_count>1</comment_count>
      <attachid>43406</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-17 22:57:44 -0800</bug_when>
    <thetext>Created attachment 43406
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164468</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-17 23:08:32 -0800</bug_when>
    <thetext>If we add the mainThread() assert, we&apos;ll need to at least add a comment there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164473</commentid>
    <comment_count>3</comment_count>
      <attachid>43408</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-17 23:20:15 -0800</bug_when>
    <thetext>Created attachment 43408
Same patch, Added comment for the ASSERT.

Added comment for the ASSERT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164497</commentid>
    <comment_count>4</comment_count>
      <attachid>43408</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 01:35:38 -0800</bug_when>
    <thetext>Comment on attachment 43408
Same patch, Added comment for the ASSERT.

So this is OK if we never plan to use anything TreeShared from a non-main thread, which is probably the case since Nodes are the only TreeShared types iirc.

This is OK with me.  Others should see this go by and comment.  However since this may be the cause of our recent bout of bot crashes, it would be nice to get this in quickly so we can work on finding the real cause behind bug 30835.

Please make sure you&apos;ve run the layout tests in debug mode before landing this.

I think we may need to solve the FIXME before landing, or at least shortly after:
+    // FIXME: Find out what guarantees that context is still alive when task is executed.
+    // If it is not so, it is another source of random crashes.
We need to understand why a raw pointer there is safe, and if it is, document it.

Would it be easy to write a layout test which caused this crash w/o needing to be run 100 times?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164601</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 09:40:38 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 43408 [details])
&gt; So this is OK if we never plan to use anything TreeShared from a non-main
&gt; thread, which is probably the case since Nodes are the only TreeShared types
&gt; iirc.

The assertion is great. I would also do the assertion in all the other TreeShared member functions: The constructor, destructor, setParent, parent too. It&apos;s never safe to read or write these on other threads -- obviously we can&apos;t add such assertions to every single access to any field of any DOM node, but if there was an efficient way to do so we would!

The practical way to get this right for the many other reference counted objects is by adding machinery in RefCounted to make it fire an assert when the ref is done from the wrong thread too. For RefCounted, we&apos;ll need to add a function to disable this for the few objects that are used cross-thread such as strings that are copied for that reason.

The vast majority of RefCounted can either assert they are used only on the main thread or only on the same thread they were created on. Adding such assertions will catch problems like this in a way that makes them much easier to notice and understand. And a function to turn them off for certain objects is likely to be a practical way to do this without getting in the way of work on things like workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164609</commentid>
    <comment_count>6</comment_count>
      <attachid>43408</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 09:51:23 -0800</bug_when>
    <thetext>Comment on attachment 43408
Same patch, Added comment for the ASSERT.

&gt; +    // This is not a RefPtr because it would require ScriptExecutionContext-derived classes to be
&gt; +    // refcountable in a thread-safe manner which is overkill because they always are created and deleted on
&gt; +    // the same thread.
&gt; +    // FIXME: Find out what guarantees that context is still alive when task is executed.
&gt; +    // If it is not so, it is another source of random crashes.

This comment seems way too big. Mentioning &quot;source of random crashes&quot; seems too vague to me, but your FIXME is right on.

I have reviewed the clients and I can tell you right now there is no guarantee the context is still alive when the task is executed. The design here is broken. The code has this idea that we can post a task for later execution on the main thread and have the document passed to the task, given that we can&apos;t add a ref to the document to guarantee it still still be around. That simply can&apos;t be done.

So I think we need to do something different here. This patch trades one bug for another, but doesn&apos;t fix it, as you suspect.

I don&apos;t see any way ScriptExecutionContext::postTaskToMainThread can work. It makes a promise it can&apos;t keep, that it can defer work to the main thread for a document, without being given a ref to that document, which is normally needed for such things. Either we need to already have a ref to the document, or the document needs a thread-safe way to cancel already-posted tasks.

I don&apos;t know what to say about the patch. It&apos;s definitely no worse with the patch than without it, but the bug is still there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164618</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-18 10:14:40 -0800</bug_when>
    <thetext>&gt; I don&apos;t see any way ScriptExecutionContext::postTaskToMainThread can work. It
&gt; makes a promise it can&apos;t keep, that it can defer work to the main thread for a
&gt; document, without being given a ref to that document, which is normally needed
&gt; for such things. Either we need to already have a ref to the document, or the
&gt; document needs a thread-safe way to cancel already-posted tasks.

The original idea was that tasks could only be sent via this mechanism when there was activity in a worker. So, worker messaging proxy kept the document alive.

It seems that the mechanism has been generalized since then - I&apos;m not sure if the guarantee still holds in practice, but it&apos;s certainly possible to abuse postTaskToMainThread in a way that makes it void.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164628</commentid>
    <comment_count>8</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-18 10:36:48 -0800</bug_when>
    <thetext>Thanks guys!

I think we should have a way to remove tasks from the &apos;post to main thread&apos; queue when Document is destroyed or earlier, since even if we have thread-safe ref it&apos;s unclear if it makes sense to run a task on a document that is only alive because it still have refcount &gt; 0. I think this worked before w/o many problems because in practice there are always other &apos;tasks&apos; that has to be also delivered via main thread&apos;s run loop before Document will be destroyed so there is some serialization of work. It is not a guarantee though so I agree this could use more thought.

I can see 2 issues here:
1. Recent surge in test flakiness caused by me adding a RefPtr - the attached patch reverts this back to state as existed before http://trac.webkit.org/changeset/50919. If others think this is an ok intermediate solution, we could land the patch, with suggested modifications. Alternatively I could simply revert r50919.

2. postTaskToMainThread design that has to be redone. I&apos;ll be glad to give it a try and iterate on something that could be better. It could take a few days though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164629</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-11-18 10:39:19 -0800</bug_when>
    <thetext>For simplicity, I am calling it &quot;document&quot;, rather than &quot;script execution context&quot;.

(In reply to comment #7)
&gt; The original idea was that tasks could only be sent via this mechanism when
&gt; there was activity in a worker. So, worker messaging proxy kept the document
&gt; alive.

That would be fine as long as the task doesn&apos;t get passed a reference to the document. The issue is really that the task passes a reference to the document, but can&apos;t guarantee that reference is good. If the task has its own pointer to the document, there is no problem.

&gt; It seems that the mechanism has been generalized since then - I&apos;m not sure if
&gt; the guarantee still holds in practice, but it&apos;s certainly possible to abuse
&gt; postTaskToMainThread in a way that makes it void.

The only benefit this seems to provide is callOnMainThread plus a delete call. There&apos;s no additional service provided here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164635</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-11-18 11:06:51 -0800</bug_when>
    <thetext>&gt; That would be fine as long as the task doesn&apos;t get passed a reference to the
&gt; document.

A document cannot go away while there are (dedicated?) workers present, or any communication pending with them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164653</commentid>
    <comment_count>11</comment_count>
      <attachid>43444</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-18 12:13:49 -0800</bug_when>
    <thetext>Created attachment 43444
Revert r50919 that has caused the regression.

The easiest way to deal with recent regression seems to revert the recent change.

Created bug 31633 for &apos;dangling Document pointer&apos; issue discussed here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164654</commentid>
    <comment_count>12</comment_count>
      <attachid>43444</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 12:16:39 -0800</bug_when>
    <thetext>Comment on attachment 43444
Revert r50919 that has caused the regression.

If this is just a revert rs=me.

I also think we&apos;ll need separate patches to add the ASSERTs to TreeShared and possibly RefCounted.

Shared workers might still be the underlying cause of bug 30835, which started sometime before r50171, possibly due to another shared worker change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164661</commentid>
    <comment_count>13</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-11-18 12:27:30 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 43444 [details])
&gt; If this is just a revert rs=me.
&gt; 
&gt; I also think we&apos;ll need separate patches to add the ASSERTs to TreeShared and
&gt; possibly RefCounted.
&gt; 
&gt; Shared workers might still be the underlying cause of bug 30835, which started
&gt; sometime before r50171, possibly due to another shared worker change.

What assertion can we do with RefCounted?  RefCounted can (and is) legitimately used on non-main threads, maybe refcounted would be expected to maintain a record of what thread it expects to be used on?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164663</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-11-18 12:31:31 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; What assertion can we do with RefCounted?  RefCounted can (and is) legitimately
&gt; used on non-main threads, maybe refcounted would be expected to maintain a
&gt; record of what thread it expects to be used on?

Yes.  See comment 5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>164673</commentid>
    <comment_count>15</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-11-18 12:44:36 -0800</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/51127

Created bug 31637 and bug 31639 to add asserts in TreeShared and RefCounted.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43406</attachid>
            <date>2009-11-17 22:57:44 -0800</date>
            <delta_ts>2009-11-17 23:20:15 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3254</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDY2ZTM3Mi4uN2IyYzliNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xNyAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChyIDUwOTE5KSBJbnRyb2R1Y2VkIGEgbm9uLXRo
cmVhZC1zYWZlIHJlZmNvdW50aW5nIGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNr
VG9NYWluVGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTYxNQorICAgICAgICBQYXJ0aWFsIHJldmVydCBvZiByNTA5MTksIHdpdGggYSBiZXR0
ZXIgY29tbWVudCB0aGlzIHRpbWUuCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWRkZWQgYW4gQVNT
RVJUIHRvIFRyZWVTaGFyZWQ6OnJlZigpIGFuZCBkZXJlZigpIGNoZWNraW5nIGZvciBtYWluIHRo
cmVhZC4KKworICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1UYXNrRGF0YTo6UGVyZm9ybVRhc2tEYXRhKTogUmVtb3ZlZCBj
cm9zcy10aHJlYWQgUmVmUHRyLCBhcyBpdCB3YXMgYmVmb3JlLiBBZGRlZCBjb21tZW50LgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybVRhc2tEYXRhOjpwZXJmb3JtVGFzayk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL1RyZWVTaGFyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTaGFy
ZWQ6OnJlZik6IEFkZCBBU1NFUlQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgY2FsbGVkIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNoYXJlZDo6ZGVyZWYpOiBEaXR0by4KKwog
MjAwOS0xMS0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYzhkMWIzNi4uNGE3NDBkNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBQZXJmb3JtVGFza0RhdGEgewogcHVibGljOgotICAgIFBlcmZvcm1UYXNrRGF0YShQ
YXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQsIFBhc3NPd25QdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKKyAgICBQZXJmb3JtVGFza0RhdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrPiB0YXNrKQogICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICAg
ICAsIG1fdGFzayh0YXNrKQogICAgIHsKQEAgLTI0NSwxMiArMjQ1LDE3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBwZXJmb3JtVGFzayh2b2lkKiBkYXRhKQogICAgIHsKICAgICAgICAgUGVy
Zm9ybVRhc2tEYXRhKiB0YXNrRGF0YSA9IHN0YXRpY19jYXN0PFBlcmZvcm1UYXNrRGF0YSo+KGRh
dGEpOwotICAgICAgICB0YXNrRGF0YS0+bV90YXNrLT5wZXJmb3JtVGFzayh0YXNrRGF0YS0+bV9j
b250ZXh0LmdldCgpKTsKKyAgICAgICAgdGFza0RhdGEtPm1fdGFzay0+cGVyZm9ybVRhc2sodGFz
a0RhdGEtPm1fY29udGV4dCk7CiAgICAgICAgIGRlbGV0ZSB0YXNrRGF0YTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKKyAg
ICAvLyBUaGlzIGlzIG5vdCBhIFJlZlB0ciBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC1kZXJpdmVkIGNsYXNzZXMgdG8gYmUKKyAgICAvLyByZWZjb3VudGFi
bGUgaW4gYSB0aHJlYWQtc2FmZSBtYW5uZXIgd2hpY2ggaXMgb3ZlcmtpbGwgYmVjYXVzZSB0aGV5
IGFsd2F5cyBhcmUgY3JlYXRlZCBhbmQgZGVsZXRlZCBvbgorICAgIC8vIHRoZSBzYW1lIHRocmVh
ZC4KKyAgICAvLyBGSVhNRTogRmluZCBvdXQgd2hhdCBndWFyYW50ZWVzIHRoYXQgY29udGV4dCBp
cyBzdGlsbCBhbGl2ZSB3aGVuIHRhc2sgaXMgZXhlY3V0ZWQuCisgICAgLy8gSWYgaXQgaXMgbm90
IHNvLCBpdCBpcyBhbm90aGVyIHNvdXJjZSBvZiByYW5kb20gY3Jhc2hlcy4KKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+IG1fdGFzazsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
VHJlZVNoYXJlZC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKaW5kZXggMDI3Mjhm
Zi4uYWUyOGQ5ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKQEAgLTIzLDYgKzIzLDkgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aWZuZGVmIE5ERUJVRworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KKyNlbmRpZgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ2LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHsKICAgICAg
ICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFzQmVndW4pOwogICAgICAgICBBU1NFUlQoIW1faW5SZW1v
dmVkTGFzdFJlZkZ1bmN0aW9uKTsKKyAgICAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICAgICAgKyttX3JlZkNvdW50OwogICAgIH0KIApAQCAtNTMsNiArNTcsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBBU1NFUlQoIW1fZGVsZXRpb25IYXNCZWd1bik7CiAgICAgICAgIEFTU0VS
VCghbV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24pOworICAgICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogICAgICAgICBpZiAoLS1tX3JlZkNvdW50IDw9IDAgJiYgIW1fcGFyZW50KSB7CiAj
aWZuZGVmIE5ERUJVRwogICAgICAgICAgICAgbV9pblJlbW92ZWRMYXN0UmVmRnVuY3Rpb24gPSB0
cnVlOwo=
</data>
<flag name="commit-queue"
          id="25108"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43408</attachid>
            <date>2009-11-17 23:20:15 -0800</date>
            <delta_ts>2009-11-18 12:13:49 -0800</delta_ts>
            <desc>Same patch, Added comment for the ASSERT.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>3562</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDY2ZTM3Mi4uN2IyYzliNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xNyAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChyIDUwOTE5KSBJbnRyb2R1Y2VkIGEgbm9uLXRo
cmVhZC1zYWZlIHJlZmNvdW50aW5nIGluIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnBvc3RUYXNr
VG9NYWluVGhyZWFkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTYxNQorICAgICAgICBQYXJ0aWFsIHJldmVydCBvZiByNTA5MTksIHdpdGggYSBiZXR0
ZXIgY29tbWVudCB0aGlzIHRpbWUuCisgICAgICAgIE5vIG5ldyB0ZXN0cywgYWRkZWQgYW4gQVNT
RVJUIHRvIFRyZWVTaGFyZWQ6OnJlZigpIGFuZCBkZXJlZigpIGNoZWNraW5nIGZvciBtYWluIHRo
cmVhZC4KKworICAgICAgICAqIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBlcmZvcm1UYXNrRGF0YTo6UGVyZm9ybVRhc2tEYXRhKTogUmVtb3ZlZCBj
cm9zcy10aHJlYWQgUmVmUHRyLCBhcyBpdCB3YXMgYmVmb3JlLiBBZGRlZCBjb21tZW50LgorICAg
ICAgICAoV2ViQ29yZTo6UGVyZm9ybVRhc2tEYXRhOjpwZXJmb3JtVGFzayk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL1RyZWVTaGFyZWQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlRyZWVTaGFy
ZWQ6OnJlZik6IEFkZCBBU1NFUlQgdG8gbWFrZSBzdXJlIHRoaXMgaXMgY2FsbGVkIG9uIG1haW4g
dGhyZWFkLgorICAgICAgICAoV2ViQ29yZTo6VHJlZVNoYXJlZDo6ZGVyZWYpOiBEaXR0by4KKwog
MjAwOS0xMS0xNyAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUnViYmVyLXN0YW1wZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuY3BwIGIvV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAKaW5kZXggYzhkMWIzNi4uNGE3NDBkNSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKKysrIGIvV2ViQ29yZS9kb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAKQEAgLTIzNiw3ICsyMzYsNyBAQCBwcml2YXRlOgog
CiBjbGFzcyBQZXJmb3JtVGFza0RhdGEgewogcHVibGljOgotICAgIFBlcmZvcm1UYXNrRGF0YShQ
YXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQsIFBhc3NPd25QdHI8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKKyAgICBQZXJmb3JtVGFza0RhdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpUYXNrPiB0YXNrKQogICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQogICAgICAg
ICAsIG1fdGFzayh0YXNrKQogICAgIHsKQEAgLTI0NSwxMiArMjQ1LDE3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBwZXJmb3JtVGFzayh2b2lkKiBkYXRhKQogICAgIHsKICAgICAgICAgUGVy
Zm9ybVRhc2tEYXRhKiB0YXNrRGF0YSA9IHN0YXRpY19jYXN0PFBlcmZvcm1UYXNrRGF0YSo+KGRh
dGEpOwotICAgICAgICB0YXNrRGF0YS0+bV90YXNrLT5wZXJmb3JtVGFzayh0YXNrRGF0YS0+bV9j
b250ZXh0LmdldCgpKTsKKyAgICAgICAgdGFza0RhdGEtPm1fdGFzay0+cGVyZm9ybVRhc2sodGFz
a0RhdGEtPm1fY29udGV4dCk7CiAgICAgICAgIGRlbGV0ZSB0YXNrRGF0YTsKICAgICB9CiAKIHBy
aXZhdGU6Ci0gICAgUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKKyAg
ICAvLyBUaGlzIGlzIG5vdCBhIFJlZlB0ciBiZWNhdXNlIGl0IHdvdWxkIHJlcXVpcmUgU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC1kZXJpdmVkIGNsYXNzZXMgdG8gYmUKKyAgICAvLyByZWZjb3VudGFi
bGUgaW4gYSB0aHJlYWQtc2FmZSBtYW5uZXIgd2hpY2ggaXMgb3ZlcmtpbGwgYmVjYXVzZSB0aGV5
IGFsd2F5cyBhcmUgY3JlYXRlZCBhbmQgZGVsZXRlZCBvbgorICAgIC8vIHRoZSBzYW1lIHRocmVh
ZC4KKyAgICAvLyBGSVhNRTogRmluZCBvdXQgd2hhdCBndWFyYW50ZWVzIHRoYXQgY29udGV4dCBp
cyBzdGlsbCBhbGl2ZSB3aGVuIHRhc2sgaXMgZXhlY3V0ZWQuCisgICAgLy8gSWYgaXQgaXMgbm90
IHNvLCBpdCBpcyBhbm90aGVyIHNvdXJjZSBvZiByYW5kb20gY3Jhc2hlcy4KKyAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ6OlRhc2s+IG1fdGFzazsKIH07CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
VHJlZVNoYXJlZC5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKaW5kZXggMDI3Mjhm
Zi4uYjNjNmQzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9UcmVlU2hhcmVkLmgKQEAgLTIzLDYgKzIzLDkgQEAKIAogI2lu
Y2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+Cisj
aWZuZGVmIE5ERUJVRworI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4gIC8vIEZvciBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpLgorI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDYs
NiArNDksMTAgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgQVNTRVJUKCFtX2RlbGV0aW9uSGFz
QmVndW4pOwogICAgICAgICBBU1NFUlQoIW1faW5SZW1vdmVkTGFzdFJlZkZ1bmN0aW9uKTsKKyAg
ICAgICAgLy8gRG9jdW1lbnQgaXMgYSBUcmVlU2hhcmVkIGFuZCBhbHNvIGEgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCBhbmQgYXMgc3VjaCBpcyByZWZlcmVuY2VkCisgICAgICAgIC8vIGJ5IFdvcmtl
cnMgdGhhdCBydW4gb24gbm9uLW1haW4gdGhyZWFkcy4gVmVyaWZ5IHRoYXQgd2UgZG9uJ3QgYWNj
aWRlbnRhbGx5IHJlZi9kZXJlZgorICAgICAgICAvLyBvbiB0aG9zZSB3b3JrZXIgdGhyZWFkcyBz
aW5jZSB0aGUgcmVmY291bnQgaGVyZSBpcyBub3QgdGhyZWFkIHNhZmUuIAorICAgICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgICAgICArK21fcmVmQ291bnQ7CiAgICAgfQogCkBAIC01
Myw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIEFTU0VSVCghbV9kZWxldGlvbkhh
c0JlZ3VuKTsKICAgICAgICAgQVNTRVJUKCFtX2luUmVtb3ZlZExhc3RSZWZGdW5jdGlvbik7Cisg
ICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIGlmICgtLW1fcmVmQ291bnQg
PD0gMCAmJiAhbV9wYXJlbnQpIHsKICNpZm5kZWYgTkRFQlVHCiAgICAgICAgICAgICBtX2luUmVt
b3ZlZExhc3RSZWZGdW5jdGlvbiA9IHRydWU7Cg==
</data>
<flag name="commit-queue"
          id="25111"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>43444</attachid>
            <date>2009-11-18 12:13:49 -0800</date>
            <delta_ts>2009-11-18 12:16:38 -0800</delta_ts>
            <desc>Revert r50919 that has caused the regression.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>5010</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDg5NDQ4ZS4uM2I0ZWI4ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAwOS0xMS0xOCAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZXZlcnRpbmcgcjUwOTE5IHRoYXQgaGFzIGludHJvZHVjZWQgYSBu
b24tdGhyZWFkLXNhZmUgcmVmY291bnRpbmcgaW4gU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6cG9z
dFRhc2tUb01haW5UaHJlYWQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zMTYxNQorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRUYXNrVGltZXI6OlNjcmlwdEV4ZWN1dGlv
bkNvbnRleHRUYXNrVGltZXIpOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dFRhc2tUaW1lcjo6ZmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6UGVyZm9ybVRhc2tDb250
ZXh0OjpQZXJmb3JtVGFza0NvbnRleHQpOgorICAgICAgICAoV2ViQ29yZTo6cGVyZm9ybVRhc2sp
OgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnBvc3RUYXNrKToKKyAgICAgICAgKiBkb20v
U2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHA6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlv
bkNvbnRleHQuaDoKKwogMjAwOS0xMS0xOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
aW5kZXggOTEzZjU3MC4uZGVjMTViZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCisrKyBiL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDUzNiw5ICs0NTM2LDUxIEBA
IHZvaWQgRG9jdW1lbnQ6OnNjcmlwdEltcG9ydGVkKHVuc2lnbmVkIGxvbmcgaWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VTdHJpCiAjZW5kaWYKIH0KIAorY2xhc3MgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dFRhc2tUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgeworcHVibGljOgorICAgIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHRUYXNrVGltZXIoUGFzc1JlZlB0cjxEb2N1bWVudD4gY29udGV4
dCwgUGFzc093blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiB0YXNrKQorICAgICAg
ICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICAgICAsIG1fdGFzayh0YXNrKQorICAgIHsKKyAg
ICB9CisKK3ByaXZhdGU6CisgICAgdmlydHVhbCB2b2lkIGZpcmVkKCkKKyAgICB7CisgICAgICAg
IG1fdGFzay0+cGVyZm9ybVRhc2sobV9jb250ZXh0LmdldCgpKTsKKyAgICAgICAgZGVsZXRlIHRo
aXM7CisgICAgfQorCisgICAgUmVmUHRyPERvY3VtZW50PiBtX2NvbnRleHQ7CisgICAgT3duUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IG1fdGFzazsKK307CisKK3N0cnVjdCBQZXJm
b3JtVGFza0NvbnRleHQgOiBOb25jb3B5YWJsZSB7CisgICAgUGVyZm9ybVRhc2tDb250ZXh0KFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIFBhc3NPd25QdHI8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKKyAgICAgICAgOiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAgICwgdGFzayh0YXNr
KQorICAgIHsKKyAgICB9CisKKyAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVj
dXRpb25Db250ZXh0OyAvLyBUaGUgY29udGV4dCBzaG91bGQgZXhpc3QgdW50aWwgdGFzayBleGVj
dXRpb24uCisgICAgT3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2s7Cit9
OworCitzdGF0aWMgdm9pZCBwZXJmb3JtVGFzayh2b2lkKiBjdHgpCit7CisgICAgUGVyZm9ybVRh
c2tDb250ZXh0KiBwdGN0eCA9IHJlaW50ZXJwcmV0X2Nhc3Q8UGVyZm9ybVRhc2tDb250ZXh0Kj4o
Y3R4KTsKKyAgICBwdGN0eC0+dGFzay0+cGVyZm9ybVRhc2socHRjdHgtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOworICAgIGRlbGV0ZSBwdGN0eDsKK30KKwogdm9pZCBEb2N1bWVudDo6cG9zdFRh
c2soUGFzc093blB0cjxUYXNrPiB0YXNrKQogewotICAgIHBvc3RUYXNrVG9NYWluVGhyZWFkKHRh
c2spOworICAgIGlmIChpc01haW5UaHJlYWQoKSkgeworICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0VGFza1RpbWVyKiB0aW1lciA9IG5ldyBTY3JpcHRFeGVjdXRpb25Db250ZXh0VGFza1Rp
bWVyKHN0YXRpY19jYXN0PERvY3VtZW50Kj4odGhpcyksIHRhc2spOworICAgICAgICB0aW1lci0+
c3RhcnRPbmVTaG90KDApOworICAgIH0gZWxzZSB7CisgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
cGVyZm9ybVRhc2ssIG5ldyBQZXJmb3JtVGFza0NvbnRleHQodGhpcywgdGFzaykpOworICAgIH0K
IH0KIAogRWxlbWVudCogRG9jdW1lbnQ6OmZpbmRBbmNob3IoY29uc3QgU3RyaW5nJiBuYW1lKQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5jcHAgYi9XZWJD
b3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAppbmRleCBjOGQxYjM2Li5iYzcxMDg0
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAorKysg
Yi9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcApAQCAtMjE1LDUzICsyMTUs
NCBAQCBKU0M6OkpTR2xvYmFsRGF0YSogU2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6Z2xvYmFsRGF0
YSgpCiB9CiAjZW5kaWYKIAotY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dFRhc2tUaW1lciA6
IHB1YmxpYyBUaW1lckJhc2UgewotcHVibGljOgotICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRU
YXNrVGltZXIoUGFzc1JlZlB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0PiBjb250ZXh0LCBQYXNz
T3duUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+IHRhc2spCi0gICAgICAgIDogbV9j
b250ZXh0KGNvbnRleHQpCi0gICAgICAgICwgbV90YXNrKHRhc2spCi0gICAgewotICAgIH0KLQot
cHJpdmF0ZToKLSAgICB2aXJ0dWFsIHZvaWQgZmlyZWQoKQotICAgIHsKLSAgICAgICAgbV90YXNr
LT5wZXJmb3JtVGFzayhtX2NvbnRleHQuZ2V0KCkpOwotICAgICAgICBkZWxldGUgdGhpczsKLSAg
ICB9Ci0KLSAgICBSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dD4gbV9jb250ZXh0OwotICAg
IE93blB0cjxTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPiBtX3Rhc2s7Ci19OwotCi1jbGFz
cyBQZXJmb3JtVGFza0RhdGEgewotcHVibGljOgotICAgIFBlcmZvcm1UYXNrRGF0YShQYXNzUmVm
UHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IGNvbnRleHQsIFBhc3NPd25QdHI8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4gdGFzaykKLSAgICAgICAgOiBtX2NvbnRleHQoY29udGV4dCkK
LSAgICAgICAgLCBtX3Rhc2sodGFzaykKLSAgICB7Ci0gICAgfQotCi0gICAgc3RhdGljIHZvaWQg
cGVyZm9ybVRhc2sodm9pZCogZGF0YSkKLSAgICB7Ci0gICAgICAgIFBlcmZvcm1UYXNrRGF0YSog
dGFza0RhdGEgPSBzdGF0aWNfY2FzdDxQZXJmb3JtVGFza0RhdGEqPihkYXRhKTsKLSAgICAgICAg
dGFza0RhdGEtPm1fdGFzay0+cGVyZm9ybVRhc2sodGFza0RhdGEtPm1fY29udGV4dC5nZXQoKSk7
Ci0gICAgICAgIGRlbGV0ZSB0YXNrRGF0YTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgUmVmUHRy
PFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ+IG1fY29udGV4dDsKLSAgICBPd25QdHI8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4gbV90YXNrOwotfTsKLQotdm9pZCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0Ojpwb3N0VGFza1RvTWFpblRocmVhZChQYXNzT3duUHRyPFRhc2s+IHRhc2spCi17Ci0g
ICAgaWYgKGlzTWFpblRocmVhZCgpKSB7Ci0gICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRU
YXNrVGltZXIqIHRpbWVyID0gbmV3IFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRUYXNrVGltZXIodGhp
cywgdGFzayk7Ci0gICAgICAgIHRpbWVyLT5zdGFydE9uZVNob3QoMCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgY2FsbE9uTWFpblRocmVhZChQZXJmb3JtVGFza0RhdGE6OnBlcmZvcm1UYXNrLCBu
ZXcgUGVyZm9ybVRhc2tEYXRhKHRoaXMsIHRhc2spKTsKLSAgICB9Ci19Ci0KIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQuaCBiL1dlYkNvcmUvZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaAppbmRleCAwZTU1MjFi
Li4xNDE0MTI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgKKysrIGIvV2ViQ29yZS9kb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oCkBAIC0xMTQsOSAr
MTE0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyAgICAgICB0aGF0IGFscmVh
ZHkgY29udGFpbnMgY29udGVudC4KICAgICAgICAgdm9pZCBzZXRTZWN1cml0eU9yaWdpbihQYXNz
UmVmUHRyPFNlY3VyaXR5T3JpZ2luPik7CiAKLSAgICAgICAgLy8gSGVscGVyIGZvciBjb250ZXh0
cyB0aGF0IGxpdmUgb24gdGhlIG1haW4gdGhyZWFkLgotICAgICAgICB2b2lkIHBvc3RUYXNrVG9N
YWluVGhyZWFkKFBhc3NPd25QdHI8VGFzaz4pOwotCiAgICAgcHJpdmF0ZToKICAgICAgICAgdmly
dHVhbCBjb25zdCBLVVJMJiB2aXJ0dWFsVVJMKCkgY29uc3QgPSAwOwogICAgICAgICB2aXJ0dWFs
IEtVUkwgdmlydHVhbENvbXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsK
</data>
<flag name="review"
          id="25150"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="25151"
          type_id="3"
          status="-"
          setter="dimich"
    />
          </attachment>
      

    </bug>

</bugzilla>