<?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>82109</bug_id>
          
          <creation_ts>2012-03-23 17:52:50 -0700</creation_ts>
          <short_desc>[chromium] Fix race bug that clobbers CCLayerImpl updateRect</short_desc>
          <delta_ts>2012-03-23 19:37: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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Shawn Singh">shawnsingh</reporter>
          <assigned_to name="Shawn Singh">shawnsingh</assigned_to>
          <cc>backer</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>danakj</cc>
    
    <cc>dpranke</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>586913</commentid>
    <comment_count>0</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-23 17:52:50 -0700</bug_when>
    <thetext>If the main thread commits twice before the impl thread actually draws, then the updateRect of the first frame gets lost forever, and not propagated to the damage tracker.

The solution is to accumulate the updateRect.  The updateRect is already being correctly cleared at the appropriate time after drawing.

Patch coming in a moment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586925</commentid>
    <comment_count>1</comment_count>
      <attachid>133600</attachid>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-23 17:56:49 -0700</bug_when>
    <thetext>Created attachment 133600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586938</commentid>
    <comment_count>2</comment_count>
    <who name="Vangelis Kokkevis">vangelis</who>
    <bug_when>2012-03-23 18:08:25 -0700</bug_when>
    <thetext>This looks good to me. Alas, you&apos;ll have to get a WK reviewer to sign off on it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586952</commentid>
    <comment_count>3</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-23 18:28:33 -0700</bug_when>
    <thetext>Committed r111963: &lt;http://trac.webkit.org/changeset/111963&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586957</commentid>
    <comment_count>4</comment_count>
      <attachid>133600</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-23 18:42:06 -0700</bug_when>
    <thetext>Comment on attachment 133600
Patch

How do we commit twice? I though the main thread was supposed to wait for BFAC before committing again?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586966</commentid>
    <comment_count>5</comment_count>
    <who name="Shawn Singh">shawnsingh</who>
    <bug_when>2012-03-23 19:00:54 -0700</bug_when>
    <thetext>I don&apos;t know.  Perhaps Nat can suggest why?

I can say however, that fprintfs clearly show that TreeSynchronizer::synchronizeTrees() does commonly occur twice in a row before CCLayerTreeHostImpl::drawLayers() completes once.

I agree this is a question we should find the answer. =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>586983</commentid>
    <comment_count>6</comment_count>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-03-23 19:37:27 -0700</bug_when>
    <thetext>Are there accelerated animations on your test?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133600</attachid>
            <date>2012-03-23 17:56:49 -0700</date>
            <delta_ts>2012-03-23 18:42:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82109-20120323175648.patch</filename>
            <type>text/plain</type>
            <size>5127</size>
            <attacher name="Shawn Singh">shawnsingh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTExODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU2YmY0YTY4YjEyZGU2
ZjA1YzNmNDMwNjY5MjBkM2I2YTVjNGM4Mi4uNDJmYWMxYjhjZjc0YmUzNDk1YzliZjYxY2RkMjZl
MzUxNTMxNThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTAzLTIzICBTaGF3
biBTaW5naCAgPHNoYXduc2luZ2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0g
Rml4IHJhY2UgYnVnIHRoYXQgY2xvYmJlcnMgQ0NMYXllckltcGwgdXBkYXRlUmVjdAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIxMDkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJZiB0aGUgbWFpbiB0aHJl
YWQgY29tbWl0cyB0d2ljZSBiZWZvcmUgdGhlIGltcGwgdGhyZWFkIGFjdHVhbGx5CisgICAgICAg
IGRyYXdzLCB0aGVuIHRoZSB1cGRhdGVSZWN0IG9mIHRoZSBmaXJzdCBmcmFtZSBnZXRzIGxvc3Qg
Zm9yZXZlciwKKyAgICAgICAgYW5kIG5vdCBwcm9wYWdhdGVkIHRvIHRoZSBkYW1hZ2UgdHJhY2tl
ci4KKworICAgICAgICBUaGUgc29sdXRpb24gaXMgdG8gYWNjdW11bGF0ZSB0aGUgdXBkYXRlUmVj
dC4gVGhlIENDTGF5ZXJJbXBsCisgICAgICAgIHVwZGF0ZVJlY3QgaXMgYWxyZWFkeSBiZWluZyBj
b3JyZWN0bHkgY2xlYXJlZCBhdCB0aGUgYXBwcm9wcmlhdGUKKyAgICAgICAgdGltZSBhZnRlciBk
cmF3aW5nLgorCisgICAgICAgIFVuaXQgdGVzdCBhZGRlZCB0byBMYXllckNocm9taXVtVGVzdC5j
cHAuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ2hyb21pdW06OnB1c2hQcm9wZXJ0aWVzVG8p
OgorCiAyMDEyLTAzLTIzICBUb21teSBXaWRlbmZseWNodCAgPHRvbW15d0Bnb29nbGUuY29tPgog
CiAgICAgICAgIE1lZGlhU3RyZWFtIEFQSSAoSlNFUCk6IEludHJvZHVjaW5nIFBlZXJDb25uZWN0
aW9uMDAgYW5kIEljZUNhbGxiYWNrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDkyNTY3
YWM5MWY3OTc4ZTE5ZjIwZDIxYTEwZmUzMzgyYTkxYzk5ZGMuLmZlOWY5ZDI1YzQxYTY3YWRjYmUz
MDc4OTc0MjY0ZGQzN2ZiOTc0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTIgQEAKKzIwMTItMDMtMjMgIFNoYXduIFNpbmdoICA8c2hhd25zaW5naEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW2Nocm9taXVtXSBGaXggcmFjZSBidWcgdGhhdCBjbG9iYmVycyBDQ0xh
eWVySW1wbCB1cGRhdGVSZWN0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MjEwOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwOgorCiAyMDEyLTAzLTIzICBB
ZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKICAgICAgICAgW2Nocm9taXVtXSBG
aXggc2Nyb2xsYmFyTGF5ZXJMb3N0Q29udGV4dCBmbGFreSB0ZXN0IGNyYXNoIG9uIDEwLjYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
Q2hyb21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKaW5kZXggZGNmYjZlMzFmYjA4ZDZkMWQ2OTNkZTRmNDEwM2RhNTY3
MGI4M2JmMS4uYTViMzY0MzdhZjA0OGNhNDJkMjhkY2MwMTdkN2Q3Y2NlNmM1YTNlZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJDaHJv
bWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
TGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTQ4MCw2ICs0ODAsMTEgQEAgdm9pZCBMYXllckNocm9taXVt
OjpwdXNoUHJvcGVydGllc1RvKENDTGF5ZXJJbXBsKiBsYXllcikKICAgICBsYXllci0+c2V0U3Vi
bGF5ZXJUcmFuc2Zvcm0obV9zdWJsYXllclRyYW5zZm9ybSk7CiAgICAgaWYgKCF0cmFuc2Zvcm1J
c0FuaW1hdGluZygpKQogICAgICAgICBsYXllci0+c2V0VHJhbnNmb3JtKG1fdHJhbnNmb3JtKTsK
KworICAgIC8vIElmIHRoZSBtYWluIHRocmVhZCBjb21taXRzIG11bHRpcGxlIHRpbWVzIGJlZm9y
ZSB0aGUgaW1wbCB0aHJlYWQgYWN0dWFsbHkgZHJhd3MsIHRoZW4gZGFtYWdlIHRyYWNraW5nCisg
ICAgLy8gd2lsbCBiZWNvbWUgaW5jb3JyZWN0IGlmIHdlIHNpbXBseSBjbG9iYmVyIHRoZSB1cGRh
dGVSZWN0IGhlcmUuIFRoZSBDQ0xheWVySW1wbCdzIHVwZGF0ZVJlY3QgbmVlZHMgdG8KKyAgICAv
LyBhY2N1bXVsYXRlIChpLmUuIHVuaW9uKSBhbnkgdXBkYXRlIGNoYW5nZXMgdGhhdCBoYXZlIG9j
Y3VycmVkIG9uIHRoZSBtYWluIHRocmVhZC4KKyAgICBtX3VwZGF0ZVJlY3QudW5pdGVJZk5vblpl
cm8obGF5ZXItPnVwZGF0ZVJlY3QoKSk7CiAgICAgbGF5ZXItPnNldFVwZGF0ZVJlY3QobV91cGRh
dGVSZWN0KTsKIAogICAgIGxheWVyLT5zZXRTY3JvbGxEZWx0YShsYXllci0+c2Nyb2xsRGVsdGEo
KSAtIGxheWVyLT5zZW50U2Nyb2xsRGVsdGEoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0xheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGQ4ODU4Y2MxMjM2MWY3YzMw
ZDlkMjZmMTVhNzVhNDY5NWQxZjEzNzkuLmZmN2E5NmNjY2YyNjliZjZjY2M2NDI5ODQ5ZTk4OGY5
N2Y1NjU2NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJD
aHJvbWl1bVRlc3QuY3BwCkBAIC0yNiwxMyArMjYsMTQgQEAKIAogI2luY2x1ZGUgIkxheWVyQ2hy
b21pdW0uaCIKIAotI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgogI2luY2x1ZGUgIkND
TGF5ZXJUcmVlVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkZha2VDQ0xheWVyVHJlZUhvc3RDbGll
bnQuaCIKICNpbmNsdWRlICJMYXllclBhaW50ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUgIk5vbkNv
bXBvc2l0ZWRDb250ZW50SG9zdC5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3IuaCIKKyNpbmNs
dWRlICJjYy9DQ0xheWVySW1wbC5oIgogI2luY2x1ZGUgImNjL0NDTGF5ZXJUcmVlSG9zdC5oIgor
I2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIKICNpbmNsdWRlIDxnbW9jay9nbW9j
ay5oPgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAKQEAgLTUzMCw2ICs1MzEsMzAgQEAgVEVT
VF9GKExheWVyQ2hyb21pdW1UZXN0LCBjaGVja1Byb3BlcnR5Q2hhbmdlQ2F1c2VzQ29ycmVjdEJl
aGF2aW9yKQogICAgIEVYUEVDVF9UUlVFKHRlc3RMYXllci0+bmVlZHNEaXNwbGF5KCkpOwogfQog
CitURVNUX0YoTGF5ZXJDaHJvbWl1bVRlc3QsIHZlcmlmeVB1c2hQcm9wZXJ0aWVzQWNjdW11bGF0
ZXNVcGRhdGVSZWN0KQoreworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBzZXRJbXBsVGhy
ZWFkOworCisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IHRlc3RMYXllciA9IExheWVyQ2hyb21p
dW06OmNyZWF0ZSgpOworICAgIE93blB0cjxDQ0xheWVySW1wbD4gaW1wbExheWVyID0gQ0NMYXll
ckltcGw6OmNyZWF0ZSgxKTsKKyAgICAKKyAgICB0ZXN0TGF5ZXItPnNldE5lZWRzRGlzcGxheVJl
Y3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRTaXplKDUsIDUpKSk7CisgICAg
dGVzdExheWVyLT5wdXNoUHJvcGVydGllc1RvKGltcGxMYXllci5nZXQoKSk7CisgICAgRVhQRUNU
X0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRTaXplKDUs
IDUpKSwgaW1wbExheWVyLT51cGRhdGVSZWN0KCkpOworCisgICAgLy8gVGhlIENDTGF5ZXJJbXBs
J3MgdXBkYXRlUmVjdCBzaG91bGQgYmUgYWNjdW11bGF0ZWQgaGVyZSwgc2luY2Ugd2UgZGlkIG5v
dCBkbyBhbnl0aGluZyB0byBjbGVhciBpdC4KKyAgICB0ZXN0TGF5ZXItPnNldE5lZWRzRGlzcGxh
eVJlY3QoRmxvYXRSZWN0KEZsb2F0UG9pbnQoMTAsIDEwKSwgRmxvYXRTaXplKDUsIDUpKSk7Cisg
ICAgdGVzdExheWVyLT5wdXNoUHJvcGVydGllc1RvKGltcGxMYXllci5nZXQoKSk7CisgICAgRVhQ
RUNUX0ZMT0FUX1JFQ1RfRVEoRmxvYXRSZWN0KEZsb2F0UG9pbnQ6Onplcm8oKSwgRmxvYXRTaXpl
KDE1LCAxNSkpLCBpbXBsTGF5ZXItPnVwZGF0ZVJlY3QoKSk7CisKKyAgICAvLyBJZiB3ZSBkbyBj
bGVhciB0aGUgQ0NMYXllckltcGwgc2lkZSwgdGhlbiB0aGUgbmV4dCB1cGRhdGVSZWN0IHNob3Vs
ZCBiZSBmcmVzaCB3aXRob3V0IGFjY3VtdWxhdGlvbi4KKyAgICBpbXBsTGF5ZXItPnJlc2V0QWxs
Q2hhbmdlVHJhY2tpbmdGb3JTdWJ0cmVlKCk7CisgICAgdGVzdExheWVyLT5zZXROZWVkc0Rpc3Bs
YXlSZWN0KEZsb2F0UmVjdChGbG9hdFBvaW50KDEwLCAxMCksIEZsb2F0U2l6ZSg1LCA1KSkpOwor
ICAgIHRlc3RMYXllci0+cHVzaFByb3BlcnRpZXNUbyhpbXBsTGF5ZXIuZ2V0KCkpOworICAgIEVY
UEVDVF9GTE9BVF9SRUNUX0VRKEZsb2F0UmVjdChGbG9hdFBvaW50KDEwLCAxMCksIEZsb2F0U2l6
ZSg1LCA1KSksIGltcGxMYXllci0+dXBkYXRlUmVjdCgpKTsKKyAgICAKK30KKwogY2xhc3MgTGF5
ZXJDaHJvbWl1bVdpdGhDb250ZW50U2NhbGluZyA6IHB1YmxpYyBMYXllckNocm9taXVtIHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBMYXllckNocm9taXVtV2l0aENvbnRlbnRTY2FsaW5nKCkK
</data>
<flag name="review"
          id="137640"
          type_id="1"
          status="+"
          setter="dpranke"
    />
          </attachment>
      

    </bug>

</bugzilla>