<?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>29218</bug_id>
          
          <creation_ts>2009-09-11 18:22:46 -0700</creation_ts>
          <short_desc>Write transactions should start with a BEGIN IMMEDIATE command</short_desc>
          <delta_ts>2009-09-21 19:34:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Dumitru Daniliuc">dumi</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andersca</cc>
    
    <cc>aroben</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>146857</commentid>
    <comment_count>0</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-09-11 18:22:46 -0700</bug_when>
    <thetext>Thanks to Michael for pointing this out!

http://www.sqlite.org/lockingv3.html:
SHARED lock: The database may be read but not written. Any number of processes can hold SHARED locks at the same time, hence there can be many simultaneous readers. But no other thread or process is allowed to write to the database file while one or more SHARED locks are active.
RESERVED lock: A RESERVED lock means that the process is planning on writing to the database file at some point in the future but that it is currently just reading from the file. Only a single RESERVED lock may be active at one time, though multiple SHARED locks can coexist with a single RESERVED lock.

Currently, when we start a transaction, we issue a BEGIN command. According to http://www.sqlite.org/lang_transaction.html, BEGIN does not acquire any lock on the DB file. Then the first read operation acquires a SHARED lock, and the first write transaction escalates the lock to RESERVED. This can lead to failing write transactions. For example:

transaction_1:
SELECT ...
UPDATE ...

transaction_2:
INSERT ...

transaction_1 is allowed to execute the first statement. Since it&apos;s a SELECT operation, transaction_1 acquires only a SHARED lock. Now transaction_2 runs; it acquires a RESERVED lock and changes the database. Now transaction_1 resumes and tries to update the database too, but since the database was changed by transaction_2, the UPDATE operation fails.

We think the correct way to do this is to start all write transactions with a BEGIN IMMEDIATE command, which acquires a RESERVED lock before executing any statement. This would make transaction_2 wait for transaction_1 to finish, and both transactions would complete successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146861</commentid>
    <comment_count>1</comment_count>
      <attachid>39500</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-09-11 18:35:35 -0700</bug_when>
    <thetext>Created attachment 39500
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147078</commentid>
    <comment_count>2</comment_count>
      <attachid>39500</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-14 09:55:02 -0700</bug_when>
    <thetext>Comment on attachment 39500
patch

Can we test this?  The ChangegLog really should explain why we can&apos;t test something anytime there are no tests in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147703</commentid>
    <comment_count>3</comment_count>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-09-16 18:41:49 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 39500 [details])
&gt; Can we test this?  The ChangegLog really should explain why we can&apos;t test
&gt; something anytime there are no tests in the patch.

I don&apos;t think we can test this in a layout test. In order to test this, we need to run the steps of 2 transactions on 2 different DB threads in a very specific order, and I don&apos;t think it&apos;s possible to achieve this when the 2 DB threads share the same main thread (as they would in a layout test).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147912</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2009-09-17 13:13:37 -0700</bug_when>
    <thetext>lgtm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147952</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Nordman">michaeln</who>
    <bug_when>2009-09-17 15:15:54 -0700</bug_when>
    <thetext>sorry for the bum brackets steer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147962</commentid>
    <comment_count>6</comment_count>
      <attachid>39730</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-09-17 15:55:07 -0700</bug_when>
    <thetext>Created attachment 39730
patch

Same patch. Added comments to ChangeLog why we can&apos;t test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148371</commentid>
    <comment_count>7</comment_count>
      <attachid>39730</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-18 13:50:06 -0700</bug_when>
    <thetext>Comment on attachment 39730
patch

OK.  I guess 2 more things I would have done if posting this patch to make the reviewer&apos;s job a nobrainer would be:

1.  link to the SQLLite docs about this in the ChangeLog (assuming a direct link to the section could be found).

2.  I would consider adding a comment next to:
+        if (m_readOnly)
+            m_inProgress = m_db.executeCommand(&quot;BEGIN;&quot;);
+        else
+            m_inProgress = m_db.executeCommand(&quot;BEGIN IMMEDIATE;&quot;);
to explain why we use BEGIN vs. BEGIN IMMEDIATE and what they do.  Possibly also referencing the SQLLite docs url if you feel that&apos;s necessary.

So r+, but I would like you to make modifications like described above when landing.  Or if you aren&apos;t a committer yet (I can never remember) and want this commit-queue&apos;d, then please post a new patch to be marked r+/cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148432</commentid>
    <comment_count>8</comment_count>
      <attachid>39801</attachid>
    <who name="Dumitru Daniliuc">dumi</who>
    <bug_when>2009-09-18 15:51:05 -0700</bug_when>
    <thetext>Created attachment 39801
patch

Addressed Eric&apos;s comments.

Eric: I&apos;m not a committer yet. Can you please re-approve the patch (if you&apos;re happy with it) and put it in the commit queue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148929</commentid>
    <comment_count>9</comment_count>
      <attachid>39801</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-21 18:30:58 -0700</bug_when>
    <thetext>Comment on attachment 39801
patch

YES!  That&apos;s soooo much clearer.  Thank you!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148934</commentid>
    <comment_count>10</comment_count>
      <attachid>39801</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-21 18:49:09 -0700</bug_when>
    <thetext>Comment on attachment 39801
patch

Rejecting patch 39801 from commit-queue.

Failed to run &quot;[&apos;git&apos;, &apos;svn&apos;, &apos;dcommit&apos;]&quot; exit_code: 1
Committing to http://svn.webkit.org/repository/webkit/trunk ...
Merge conflict during commit: Your file or directory &apos;WebCore/ChangeLog&apos; is probably out-of-date: resource out of date; try updating at /usr/local/libexec/git-core//git-svn line 469</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148935</commentid>
    <comment_count>11</comment_count>
      <attachid>39801</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-21 18:49:57 -0700</bug_when>
    <thetext>Comment on attachment 39801
patch

bug 28316, still working on a fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148943</commentid>
    <comment_count>12</comment_count>
      <attachid>39801</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-21 19:34:22 -0700</bug_when>
    <thetext>Comment on attachment 39801
patch

Clearing flags on attachment: 39801

Committed r48617: &lt;http://trac.webkit.org/changeset/48617&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148944</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-21 19:34:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39500</attachid>
            <date>2009-09-11 18:35:35 -0700</date>
            <delta_ts>2009-09-17 15:55:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>3237</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODMyNSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMDktMTEgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIGFsbCB3cml0ZSB0cmFuc2FjdGlvbiBzdGFydCB3aXRoIGEgQkVHSU4gSU1NRURJQVRF
IGNvbW1hbmQKKyAgICAgICAgaW5zdGVhZCBvZiBCRUdJTi4KKworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjkyMTgKKworICAgICAgICAqIHBsYXRmb3Jt
L3NxbC9TUUxpdGVUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVUcmFu
c2FjdGlvbjo6U1FMaXRlVHJhbnNhY3Rpb24pOiBBZGRlZCBhIHJlYWRPbmx5CisgICAgICAgIHBh
cmFtZXRlci4KKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVRyYW5zYWN0aW9uOjpiZWdpbik6IENo
YW5nZWQgdG8gQkVHSU4gSU1NRURJQVRFCisgICAgICAgIGZvciB3cml0ZSB0cmFuc2FjdGlvbnMu
CisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
c3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KTogUGFzc2luZworICAgICAgICB0aGUg
cmVhZC1vbmx5IGZsYWcgdG8gdGhlIFNRTGl0ZVRyYW5zYWN0aW9uIGluc3RhbmNlLgorCiAyMDA5
LTA5LTExICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRy
YW5zYWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVU
cmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDQ4MzI1KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9zcWwv
U1FMaXRlVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw5ICszMCwxMCBAQAog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNRTGl0ZVRyYW5zYWN0aW9uOjpTUUxpdGVUcmFuc2Fj
dGlvbihTUUxpdGVEYXRhYmFzZSYgZGIpCitTUUxpdGVUcmFuc2FjdGlvbjo6U1FMaXRlVHJhbnNh
Y3Rpb24oU1FMaXRlRGF0YWJhc2UmIGRiLCBib29sIHJlYWRPbmx5KQogICAgIDogbV9kYihkYikK
ICAgICAsIG1faW5Qcm9ncmVzcyhmYWxzZSkKKyAgICAsIG1fcmVhZE9ubHkocmVhZE9ubHkpCiB7
CiB9CiAKQEAgLTQ2LDcgKzQ3LDEwIEBAIHZvaWQgU1FMaXRlVHJhbnNhY3Rpb246OmJlZ2luKCkK
IHsKICAgICBpZiAoIW1faW5Qcm9ncmVzcykgewogICAgICAgICBBU1NFUlQoIW1fZGIubV90cmFu
c2FjdGlvbkluUHJvZ3Jlc3MpOwotICAgICAgICBtX2luUHJvZ3Jlc3MgPSBtX2RiLmV4ZWN1dGVD
b21tYW5kKCJCRUdJTjsiKTsKKyAgICAgICAgaWYgKG1fcmVhZE9ubHkpCisgICAgICAgICAgICBt
X2luUHJvZ3Jlc3MgPSBtX2RiLmV4ZWN1dGVDb21tYW5kKCJCRUdJTjsiKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgbV9pblByb2dyZXNzID0gbV9kYi5leGVjdXRlQ29tbWFuZCgiQkVHSU4g
SU1NRURJQVRFOyIpOwogICAgICAgICBtX2RiLm1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gbV9p
blByb2dyZXNzOwogICAgIH0KIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRy
YW5zYWN0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlVHJh
bnNhY3Rpb24uaAkocmV2aXNpb24gNDgzMjUpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxp
dGVUcmFuc2FjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNR
TGl0ZURhdGFiYXNlOwogY2xhc3MgU1FMaXRlVHJhbnNhY3Rpb24gOiBwdWJsaWMgTm9uY29weWFi
bGUKIHsKIHB1YmxpYzoKLSAgICBTUUxpdGVUcmFuc2FjdGlvbihTUUxpdGVEYXRhYmFzZSYgZGIp
OworICAgIFNRTGl0ZVRyYW5zYWN0aW9uKFNRTGl0ZURhdGFiYXNlJiBkYiwgYm9vbCByZWFkT25s
eSA9IGZhbHNlKTsKICAgICB+U1FMaXRlVHJhbnNhY3Rpb24oKTsKICAgICAKICAgICB2b2lkIGJl
Z2luKCk7CkBAIC00NywxMCArNDcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNRTGl0ZURh
dGFiYXNlJiBtX2RiOwogICAgIGJvb2wgbV9pblByb2dyZXNzOwotCisgICAgYm9vbCBtX3JlYWRP
bmx5OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1FMaXRlVHJh
bnNhdGlvbl9ICi0KSW5kZXg6IFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24g
NDgzMjUpCisrKyBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0
aW9uQW5kUAogICAgIG1fZGF0YWJhc2UtPm1fc3FsaXRlRGF0YWJhc2Uuc2V0TWF4aW11bVNpemUo
bV9kYXRhYmFzZS0+bWF4aW11bVNpemUoKSk7CiAKICAgICBBU1NFUlQoIW1fc3FsaXRlVHJhbnNh
Y3Rpb24pOwotICAgIG1fc3FsaXRlVHJhbnNhY3Rpb24uc2V0KG5ldyBTUUxpdGVUcmFuc2FjdGlv
bihtX2RhdGFiYXNlLT5tX3NxbGl0ZURhdGFiYXNlKSk7CisgICAgbV9zcWxpdGVUcmFuc2FjdGlv
bi5zZXQobmV3IFNRTGl0ZVRyYW5zYWN0aW9uKG1fZGF0YWJhc2UtPm1fc3FsaXRlRGF0YWJhc2Us
IG1fcmVhZE9ubHkpKTsKIAogICAgIG1fZGF0YWJhc2UtPm1fZGF0YWJhc2VBdXRob3JpemVyLT5k
aXNhYmxlKCk7CiAgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi0+YmVnaW4oKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39730</attachid>
            <date>2009-09-17 15:55:07 -0700</date>
            <delta_ts>2009-09-18 15:51:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>3743</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQ5MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMDktMDktMTEgIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIGFsbCB3cml0ZSB0cmFuc2FjdGlvbiBzdGFydCB3aXRoIGEgQkVHSU4gSU1NRURJQVRF
IGNvbW1hbmQKKyAgICAgICAgaW5zdGVhZCBvZiBCRUdJTi4KKworICAgICAgICBXZSBjYW5ub3Qg
dGVzdCB0aGlzIGNoYW5nZSBpbiBhIGxheW91dCB0ZXN0LCBiZWNhdXNlIGluIG9yZGVyIHRvCisg
ICAgICAgIHRlc3QgaXQgd2UgbmVlZCB0byBzcGF3biB0d28gZGF0YWJhc2UgdGhyZWFkcyBhbmQg
ZXhlY3V0ZQorICAgICAgICB0cmFuc2FjdGlvbiBzdGVwcyBvbiB0aGVzZSB0d28gdGhyZWFkcyBp
biBhIHZlcnkgc3BlY2lmaWMgb3JkZXIsCisgICAgICAgIHdoaWNoIHNlZW1zIGltcG9zc2libGUg
dG8gZG8gd2hlbiB0aGV5IHNoYXJlIHRoZSBzYW1lIG1haW4gdGhyZWFkCisgICAgICAgIChhcyB0
aGV5IHdvdWxkIGluIGEgbGF5b3V0IHRlc3QpLiBUaGUgU1FMaXRlIGRvY3MgYW5kIHRoZSBjYXNl
CisgICAgICAgIGRlc2NyaWJlZCBpbiB0aGUgYnVnIHRob3VnaCBzaG91bGQgYmUgZW5vdWdoIHBy
b29mIHRoYXQgd2UgZG8gaGF2ZQorICAgICAgICBhIHByb2JsZW0gaGVyZSBhbmQgdGhhdCB0aGlz
IHBhdGNoIHdpbGwgZml4IGl0LgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yOTIxOAorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5z
YWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTGl0ZVRyYW5zYWN0aW9uOjpTUUxpdGVU
cmFuc2FjdGlvbik6IEFkZGVkIGEgcmVhZE9ubHkKKyAgICAgICAgcGFyYW1ldGVyLgorICAgICAg
ICAoV2ViQ29yZTo6U1FMaXRlVHJhbnNhY3Rpb246OmJlZ2luKTogQ2hhbmdlZCB0byBCRUdJTiBJ
TU1FRElBVEUKKyAgICAgICAgZm9yIHdyaXRlIHRyYW5zYWN0aW9ucy4KKyAgICAgICAgKiBwbGF0
Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaDoKKyAgICAgICAgKiBzdG9yYWdlL1NRTFRyYW5z
YWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNh
Y3Rpb25BbmRQcmVmbGlnaHQpOiBQYXNzaW5nCisgICAgICAgIHRoZSByZWFkLW9ubHkgZmxhZyB0
byB0aGUgU1FMaXRlVHJhbnNhY3Rpb24gaW5zdGFuY2UuCisKIDIwMDktMDktMTcgIFl1cnkgU2Vt
aWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rp
b24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5zYWN0
aW9uLmNwcAkocmV2aXNpb24gNDg0OTEpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVU
cmFuc2FjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDEwIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotU1FMaXRlVHJhbnNhY3Rpb246OlNRTGl0ZVRyYW5zYWN0aW9uKFNR
TGl0ZURhdGFiYXNlJiBkYikKK1NRTGl0ZVRyYW5zYWN0aW9uOjpTUUxpdGVUcmFuc2FjdGlvbihT
UUxpdGVEYXRhYmFzZSYgZGIsIGJvb2wgcmVhZE9ubHkpCiAgICAgOiBtX2RiKGRiKQogICAgICwg
bV9pblByb2dyZXNzKGZhbHNlKQorICAgICwgbV9yZWFkT25seShyZWFkT25seSkKIHsKIH0KIApA
QCAtNDYsNyArNDcsMTAgQEAgdm9pZCBTUUxpdGVUcmFuc2FjdGlvbjo6YmVnaW4oKQogewogICAg
IGlmICghbV9pblByb2dyZXNzKSB7CiAgICAgICAgIEFTU0VSVCghbV9kYi5tX3RyYW5zYWN0aW9u
SW5Qcm9ncmVzcyk7Ci0gICAgICAgIG1faW5Qcm9ncmVzcyA9IG1fZGIuZXhlY3V0ZUNvbW1hbmQo
IkJFR0lOOyIpOworICAgICAgICBpZiAobV9yZWFkT25seSkKKyAgICAgICAgICAgIG1faW5Qcm9n
cmVzcyA9IG1fZGIuZXhlY3V0ZUNvbW1hbmQoIkJFR0lOOyIpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBtX2luUHJvZ3Jlc3MgPSBtX2RiLmV4ZWN1dGVDb21tYW5kKCJCRUdJTiBJTU1FRElB
VEU7Iik7CiAgICAgICAgIG1fZGIubV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MgPSBtX2luUHJvZ3Jl
c3M7CiAgICAgfQogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rp
b24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVUcmFuc2FjdGlv
bi5oCShyZXZpc2lvbiA0ODQ5MSkKKysrIFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5z
YWN0aW9uLmgJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgU1FMaXRlRGF0
YWJhc2U7CiBjbGFzcyBTUUxpdGVUcmFuc2FjdGlvbiA6IHB1YmxpYyBOb25jb3B5YWJsZQogewog
cHVibGljOgotICAgIFNRTGl0ZVRyYW5zYWN0aW9uKFNRTGl0ZURhdGFiYXNlJiBkYik7CisgICAg
U1FMaXRlVHJhbnNhY3Rpb24oU1FMaXRlRGF0YWJhc2UmIGRiLCBib29sIHJlYWRPbmx5ID0gZmFs
c2UpOwogICAgIH5TUUxpdGVUcmFuc2FjdGlvbigpOwogICAgIAogICAgIHZvaWQgYmVnaW4oKTsK
QEAgLTQ3LDEwICs0Nyw5IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgU1FMaXRlRGF0YWJhc2Um
IG1fZGI7CiAgICAgYm9vbCBtX2luUHJvZ3Jlc3M7Ci0KKyAgICBib29sIG1fcmVhZE9ubHk7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBTUUxpdGVUcmFuc2F0aW9u
X0gKLQpJbmRleDogV2ViQ29yZS9zdG9yYWdlL1NRTFRyYW5zYWN0aW9uLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3N0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwCShyZXZpc2lvbiA0ODQ5MSkK
KysrIFdlYkNvcmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIzNiw3ICsyMzYsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQ
CiAgICAgbV9kYXRhYmFzZS0+bV9zcWxpdGVEYXRhYmFzZS5zZXRNYXhpbXVtU2l6ZShtX2RhdGFi
YXNlLT5tYXhpbXVtU2l6ZSgpKTsKIAogICAgIEFTU0VSVCghbV9zcWxpdGVUcmFuc2FjdGlvbik7
Ci0gICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5zZXQobmV3IFNRTGl0ZVRyYW5zYWN0aW9uKG1fZGF0
YWJhc2UtPm1fc3FsaXRlRGF0YWJhc2UpKTsKKyAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLnNldChu
ZXcgU1FMaXRlVHJhbnNhY3Rpb24obV9kYXRhYmFzZS0+bV9zcWxpdGVEYXRhYmFzZSwgbV9yZWFk
T25seSkpOwogCiAgICAgbV9kYXRhYmFzZS0+bV9kYXRhYmFzZUF1dGhvcml6ZXItPmRpc2FibGUo
KTsKICAgICBtX3NxbGl0ZVRyYW5zYWN0aW9uLT5iZWdpbigpOwo=
</data>
<flag name="review"
          id="20852"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="20917"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39801</attachid>
            <date>2009-09-18 15:51:05 -0700</date>
            <delta_ts>2009-09-21 19:34:22 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>4353</size>
            <attacher name="Dumitru Daniliuc">dumi</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODUzOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDktMDktMTggIER1bWl0cnUgRGFuaWxpdWMgIDxkdW1pQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNYWtlIGFsbCB3cml0ZSB0cmFuc2FjdGlvbiBzdGFydCB3aXRoIGEgQkVHSU4gSU1NRURJQVRF
IGNvbW1hbmQKKyAgICAgICAgaW5zdGVhZCBvZiBCRUdJTi4KKworICAgICAgICBXZSBjYW5ub3Qg
dGVzdCB0aGlzIGNoYW5nZSBpbiBhIGxheW91dCB0ZXN0LCBiZWNhdXNlIGluIG9yZGVyIHRvCisg
ICAgICAgIHRlc3QgaXQgd2UgbmVlZCB0byBzcGF3biB0d28gZGF0YWJhc2UgdGhyZWFkcyBhbmQg
ZXhlY3V0ZQorICAgICAgICB0cmFuc2FjdGlvbiBzdGVwcyBvbiB0aGVzZSB0d28gdGhyZWFkcyBp
biBhIHZlcnkgc3BlY2lmaWMgb3JkZXIsCisgICAgICAgIHdoaWNoIHNlZW1zIGltcG9zc2libGUg
dG8gZG8gd2hlbiB0aGV5IHNoYXJlIHRoZSBzYW1lIG1haW4gdGhyZWFkCisgICAgICAgIChhcyB0
aGV5IHdvdWxkIGluIGEgbGF5b3V0IHRlc3QpLiBUaGUgU1FMaXRlIGRvY3MgYW5kIHRoZSBjYXNl
CisgICAgICAgIGRlc2NyaWJlZCBpbiB0aGUgYnVnIHRob3VnaCBzaG91bGQgYmUgZW5vdWdoIHBy
b29mIHRoYXQgd2UgZG8gaGF2ZQorICAgICAgICBhIHByb2JsZW0gaGVyZSBhbmQgdGhhdCB0aGlz
IHBhdGNoIHdpbGwgZml4IGl0LgorCisgICAgICAgIFJlbGV2YW50IFNRTGl0ZSBkb2N1bWVudGF0
aW9uOgorICAgICAgICBodHRwOi8vd3d3LnNxbGl0ZS5vcmcvbGFuZ190cmFuc2FjdGlvbi5odG1s
CisgICAgICAgIGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9sb2NraW5ndjMuaHRtbCNsb2NraW5nCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI5MjE4CisK
KyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1FMaXRlVHJhbnNhY3Rpb246OlNRTGl0ZVRyYW5zYWN0aW9uKTogQWRkZWQgYSBy
ZWFkT25seQorICAgICAgICBwYXJhbWV0ZXIuCisgICAgICAgIChXZWJDb3JlOjpTUUxpdGVUcmFu
c2FjdGlvbjo6YmVnaW4pOiBDaGFuZ2VkIHRvIEJFR0lOIElNTUVESUFURQorICAgICAgICBmb3Ig
d3JpdGUgdHJhbnNhY3Rpb25zLgorICAgICAgICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVUcmFuc2Fj
dGlvbi5oOgorICAgICAgICAqIHN0b3JhZ2UvU1FMVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCk6IFBh
c3NpbmcKKyAgICAgICAgdGhlIHJlYWQtb25seSBmbGFnIHRvIHRoZSBTUUxpdGVUcmFuc2FjdGlv
biBpbnN0YW5jZS4KKwogMjAwOS0wOS0xOCAgQ3NhYmEgT3N6dHJvZ29uYWMgIDxvc3ppQGluZi51
LXN6ZWdlZC5odT4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5zYWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVUcmFuc2FjdGlvbi5jcHAJKHJldmlzaW9uIDQ4NTM4
KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw5ICszMCwxMCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVNRTGl0
ZVRyYW5zYWN0aW9uOjpTUUxpdGVUcmFuc2FjdGlvbihTUUxpdGVEYXRhYmFzZSYgZGIpCitTUUxp
dGVUcmFuc2FjdGlvbjo6U1FMaXRlVHJhbnNhY3Rpb24oU1FMaXRlRGF0YWJhc2UmIGRiLCBib29s
IHJlYWRPbmx5KQogICAgIDogbV9kYihkYikKICAgICAsIG1faW5Qcm9ncmVzcyhmYWxzZSkKKyAg
ICAsIG1fcmVhZE9ubHkocmVhZE9ubHkpCiB7CiB9CiAKQEAgLTQ2LDcgKzQ3LDE3IEBAIHZvaWQg
U1FMaXRlVHJhbnNhY3Rpb246OmJlZ2luKCkKIHsKICAgICBpZiAoIW1faW5Qcm9ncmVzcykgewog
ICAgICAgICBBU1NFUlQoIW1fZGIubV90cmFuc2FjdGlvbkluUHJvZ3Jlc3MpOwotICAgICAgICBt
X2luUHJvZ3Jlc3MgPSBtX2RiLmV4ZWN1dGVDb21tYW5kKCJCRUdJTjsiKTsKKyAgICAgICAgLy8g
Q2FsbCBCRUdJTiBJTU1FRElBVEUgZm9yIGEgd3JpdGUgdHJhbnNhY3Rpb24gdG8gYWNxdWlyZQor
ICAgICAgICAvLyBhIFJFU0VSVkVEIGxvY2sgb24gdGhlIERCIGZpbGUuIE90aGVyd2lzZSwgYW5v
dGhlciB3cml0ZQorICAgICAgICAvLyB0cmFuc2FjdGlvbiAob24gYW5vdGhlciBjb25uZWN0aW9u
KSBjb3VsZCBtYWtlIGNoYW5nZXMKKyAgICAgICAgLy8gdG8gdGhlIHNhbWUgREIgZmlsZSBiZWZv
cmUgdGhpcyB0cmFuc2FjdGlvbiBnZXRzIHRvIGV4ZWN1dGUKKyAgICAgICAgLy8gYW55IHN0YXRl
bWVudHMuIElmIHRoYXQgaGFwcGVucywgdGhpcyB0cmFuc2FjdGlvbiB3aWxsIGZhaWwuCisgICAg
ICAgIC8vIGh0dHA6Ly93d3cuc3FsaXRlLm9yZy9sYW5nX3RyYW5zYWN0aW9uLmh0bWwKKyAgICAg
ICAgLy8gaHR0cDovL3d3dy5zcWxpdGUub3JnL2xvY2tpbmd2My5odG1sI2xvY2tpbmcKKyAgICAg
ICAgaWYgKG1fcmVhZE9ubHkpCisgICAgICAgICAgICBtX2luUHJvZ3Jlc3MgPSBtX2RiLmV4ZWN1
dGVDb21tYW5kKCJCRUdJTjsiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9pblByb2dy
ZXNzID0gbV9kYi5leGVjdXRlQ29tbWFuZCgiQkVHSU4gSU1NRURJQVRFOyIpOwogICAgICAgICBt
X2RiLm1fdHJhbnNhY3Rpb25JblByb2dyZXNzID0gbV9pblByb2dyZXNzOwogICAgIH0KIH0KSW5k
ZXg6IFdlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZVRyYW5zYWN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlVHJhbnNhY3Rpb24uaAkocmV2aXNpb24gNDg1
MzgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVUcmFuc2FjdGlvbi5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIFNRTGl0ZURhdGFiYXNlOwogY2xhc3MgU1FM
aXRlVHJhbnNhY3Rpb24gOiBwdWJsaWMgTm9uY29weWFibGUKIHsKIHB1YmxpYzoKLSAgICBTUUxp
dGVUcmFuc2FjdGlvbihTUUxpdGVEYXRhYmFzZSYgZGIpOworICAgIFNRTGl0ZVRyYW5zYWN0aW9u
KFNRTGl0ZURhdGFiYXNlJiBkYiwgYm9vbCByZWFkT25seSA9IGZhbHNlKTsKICAgICB+U1FMaXRl
VHJhbnNhY3Rpb24oKTsKICAgICAKICAgICB2b2lkIGJlZ2luKCk7CkBAIC00NywxMCArNDcsOSBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFNRTGl0ZURhdGFiYXNlJiBtX2RiOwogICAgIGJvb2wg
bV9pblByb2dyZXNzOwotCisgICAgYm9vbCBtX3JlYWRPbmx5OwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gU1FMaXRlVHJhbnNhdGlvbl9ICi0KSW5kZXg6IFdlYkNv
cmUvc3RvcmFnZS9TUUxUcmFuc2FjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdG9y
YWdlL1NRTFRyYW5zYWN0aW9uLmNwcAkocmV2aXNpb24gNDg1MzgpCisrKyBXZWJDb3JlL3N0b3Jh
Z2UvU1FMVHJhbnNhY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMzYsNyArMjM2LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUAogICAgIG1fZGF0YWJhc2Ut
Pm1fc3FsaXRlRGF0YWJhc2Uuc2V0TWF4aW11bVNpemUobV9kYXRhYmFzZS0+bWF4aW11bVNpemUo
KSk7CiAKICAgICBBU1NFUlQoIW1fc3FsaXRlVHJhbnNhY3Rpb24pOwotICAgIG1fc3FsaXRlVHJh
bnNhY3Rpb24uc2V0KG5ldyBTUUxpdGVUcmFuc2FjdGlvbihtX2RhdGFiYXNlLT5tX3NxbGl0ZURh
dGFiYXNlKSk7CisgICAgbV9zcWxpdGVUcmFuc2FjdGlvbi5zZXQobmV3IFNRTGl0ZVRyYW5zYWN0
aW9uKG1fZGF0YWJhc2UtPm1fc3FsaXRlRGF0YWJhc2UsIG1fcmVhZE9ubHkpKTsKIAogICAgIG1f
ZGF0YWJhc2UtPm1fZGF0YWJhc2VBdXRob3JpemVyLT5kaXNhYmxlKCk7CiAgICAgbV9zcWxpdGVU
cmFuc2FjdGlvbi0+YmVnaW4oKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>