<?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>125939</bug_id>
          
          <creation_ts>2013-12-18 12:34:30 -0800</creation_ts>
          <short_desc>[iOS] Frequent ASSERT(hasOneRef()) in SharedBuffer::releasePurgeableBuffer</short_desc>
          <delta_ts>2013-12-18 13:01:41 -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>Page Loading</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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>psolanki</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>yongjun_zhang</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>961056</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-18 12:34:30 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/146082 fixed this by not making a purgeable buffer if a SharedBuffer has multiple refs, but the check was put in ResourceBuffer::createPurgeableBuffer instead of down in SharedBuffer::createPurgeableBuffer. This is fine for ToT WebKit, because ResourceBuffer::createPurgeableBuffer is the only caller of SharedBuffer::createPurgeableBuffer, but causes trouble for not-quite-yet-upstreamed iOS SharedBuffer code, which has another caller of SharedBuffer::createPurgeableBuffer.

Pushing the early-return down into SharedBuffer::createPurgeableBuffer makes more sense and will fix the aforementioned assertion failures on iOS, and hopefully resolve some hard-to-track-down crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961058</commentid>
    <comment_count>1</comment_count>
      <attachid>219558</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-18 12:37:55 -0800</bug_when>
    <thetext>Created attachment 219558
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961069</commentid>
    <comment_count>2</comment_count>
      <attachid>219558</attachid>
    <who name="Pratik Solanki">psolanki</who>
    <bug_when>2013-12-18 12:50:15 -0800</bug_when>
    <thetext>Comment on attachment 219558
patch

Patch looks fine to me. Though you&apos;ll need an official reviewer to give you r+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>961073</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2013-12-18 13:01:41 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/160792</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219558</attachid>
            <date>2013-12-18 12:37:55 -0800</date>
            <delta_ts>2013-12-18 12:53:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>hasonerefmove.diff</filename>
            <type>text/plain</type>
            <size>2571</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ODQ1ODM2Li43OWM2OWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTMtMTItMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPU10gRnJlcXVlbnQgQVNTRVJUKGhhc09uZVJlZigpKSBpbiBTaGFyZWRCdWZm
ZXI6OnJlbGVhc2VQdXJnZWFibGVCdWZmZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyNTkzOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIHIxNDYwODIgZml4ZWQgdGhlc2UgYXNzZXJ0aW9ucyBieSBub3Qg
bWFraW5nIGEgcHVyZ2VhYmxlIGJ1ZmZlciBpZiBhIFNoYXJlZEJ1ZmZlcgorICAgICAgICBoYXMg
bXVsdGlwbGUgcmVmcywgYnV0IHRoZSBjaGVjayB3YXMgcHV0IGluIFJlc291cmNlQnVmZmVyOjpj
cmVhdGVQdXJnZWFibGVCdWZmZXIKKyAgICAgICAgaW5zdGVhZCBvZiBkb3duIGluIFNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlUHVyZ2VhYmxlQnVmZmVyLgorCisgICAgICAgIFRoaXMgaXMgZmluZSBmb3Ig
bW9zdCBXZWJLaXQgcG9ydHMsIGJlY2F1c2UgUmVzb3VyY2VCdWZmZXI6OmNyZWF0ZVB1cmdlYWJs
ZUJ1ZmZlcgorICAgICAgICBpcyB0aGUgb25seSBjYWxsZXIgb2YgU2hhcmVkQnVmZmVyOjpjcmVh
dGVQdXJnZWFibGVCdWZmZXIsIGJ1dCBjYXVzZXMgdHJvdWJsZSBmb3IKKyAgICAgICAgbm90LXF1
aXRlLXlldC11cHN0cmVhbWVkIGlPUyBTaGFyZWRCdWZmZXIgY29kZSwgd2hpY2ggYWRkcyBhbm90
aGVyIGNhbGxlcgorICAgICAgICBvZiBTaGFyZWRCdWZmZXI6OmNyZWF0ZVB1cmdlYWJsZUJ1ZmZl
ci4KKworICAgICAgICBQdXNoIHRoZSBlYXJseS1yZXR1cm4gZG93biBpbnRvIFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlUHVyZ2VhYmxlQnVmZmVyIHRvIGVuc3VyZQorICAgICAgICB0aGF0IGFsbCBjYWxs
ZXJzIGFyZSBwcm90ZWN0ZWQgZnJvbSBjcmVhdGluZyBhIHB1cmdlYWJsZSBidWZmZXIgaWYgdGhl
IFNoYXJlZEJ1ZmZlcgorICAgICAgICBoYXMgcHJldmlvdXNseSBiZWVuIHZlbmRlZCBlbHNld2hl
cmUuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBoYXMgbm8gZWZmZWN0IG9uIHRoZSBjdXJyZW50
IE9wZW4gU291cmNlIHRyZWUuCisKKyAgICAgICAgKiBsb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VCdWZmZXI6OmNyZWF0ZVB1cmdlYWJsZUJ1ZmZl
cik6CisgICAgICAgICogcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlUHVyZ2VhYmxlQnVmZmVyKToKKwogMjAxMy0xMi0xOCAg
T2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBsaWZ5IGJpbmRp
bmdzIGNvZGVnZW4gZm9yIGFkZGluZyBnZXRPd25Qcm9wZXJ0eVNsb3Qgb3ZlcnJpZGVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlQnVmZmVyLmNwcAppbmRleCBkYWUxYzJkLi5iMGEzZWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VCdWZmZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUJ1ZmZlci5jcHAKQEAgLTExNSw4ICsx
MTUsNiBAQCBib29sIFJlc291cmNlQnVmZmVyOjpoYXNQdXJnZWFibGVCdWZmZXIoKSBjb25zdAog
dm9pZCBSZXNvdXJjZUJ1ZmZlcjo6Y3JlYXRlUHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKIHsKICAg
ICBBU1NFUlQobV9zaGFyZWRCdWZmZXIpOwotICAgIGlmICghc2hhcmVkQnVmZmVyKCktPmhhc09u
ZVJlZigpKQotICAgICAgICByZXR1cm47CiAgICAgc2hhcmVkQnVmZmVyKCktPmNyZWF0ZVB1cmdl
YWJsZUJ1ZmZlcigpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
aGFyZWRCdWZmZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2hhcmVkQnVmZmVyLmNw
cAppbmRleCBmODQ4Y2U2Li5mODE1MmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TaGFyZWRCdWZmZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NoYXJl
ZEJ1ZmZlci5jcHAKQEAgLTIzMSw2ICsyMzEsOSBAQCB2b2lkIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
UHVyZ2VhYmxlQnVmZmVyKCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAgICBp
ZiAoIWhhc09uZVJlZigpKQorICAgICAgICByZXR1cm47CisKICAgICBjaGFyKiBkZXN0aW5hdGlv
biA9IDA7CiAgICAgbV9wdXJnZWFibGVCdWZmZXIgPSBQdXJnZWFibGVCdWZmZXI6OmNyZWF0ZVVu
aW5pdGlhbGl6ZWQobV9zaXplLCBkZXN0aW5hdGlvbik7CiAgICAgaWYgKCFtX3B1cmdlYWJsZUJ1
ZmZlcikK
</data>
<flag name="review"
          id="243209"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>