<?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>85224</bug_id>
          
          <creation_ts>2012-04-30 13:01:26 -0700</creation_ts>
          <short_desc>IndexedDB: stale index entries may not be removed in some cases</short_desc>
          <delta_ts>2012-05-02 08:52:15 -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>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>dstockwell</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>612884</commentid>
    <comment_count>0</comment_count>
    <who name="">dstockwell</who>
    <bug_when>2012-04-30 13:01:26 -0700</bug_when>
    <thetext>Stale entries in indexes are removed on iteration when a version mismatch is detected. However, this currently only happens when versions are different (when an entry is overwitten). If the key is removed from the object store, the index entry will not be removed on iteration. Over time this causes a significant degradation in index performance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612887</commentid>
    <comment_count>1</comment_count>
      <attachid>139503</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-30 13:05:52 -0700</bug_when>
    <thetext>Created attachment 139503
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>612889</commentid>
    <comment_count>2</comment_count>
      <attachid>139504</attachid>
    <who name="">dstockwell</who>
    <bug_when>2012-04-30 13:08:45 -0700</bug_when>
    <thetext>Created attachment 139504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613465</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-01 09:33:36 -0700</bug_when>
    <thetext>lgtm - emphasizes how much duplicated code there is between IndexCursorImpl::loadCurrentRow() and IndexKeyCursorImpl::loadCurrentRow() - ripe for a refactor.

I wonder, while you&apos;re there, if any other place where we return false, if we should be removing as well - I mean is there any way that once we find bad data, that the data will ever not be bad, and will just slow down the index as it already has for you? 

On the other hand, if there is data that isn&apos;t really corrupt but is actually just buggy and readable by future versions of chrome, we should leave it in case we can recover it later.

Though on the other other hand, that means that a software upgrade could make data suddenly appear that wasn&apos;t there before. Huh. something to think about for a refactor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613504</commentid>
    <comment_count>4</comment_count>
    <who name="">dstockwell</who>
    <bug_when>2012-05-01 10:27:06 -0700</bug_when>
    <thetext>(In reply to comment #3)

&gt; I wonder, while you&apos;re there, if any other place where we return false, if we should be removing as well - I mean is there any way that once we find bad data, that the data will ever not be bad, and will just slow down the index as it already has for you? 
&gt; 
&gt; On the other hand, if there is data that isn&apos;t really corrupt but is actually just buggy and readable by future versions of chrome, we should leave it in case we can recover it later.
&gt; 
&gt; Though on the other other hand, that means that a software upgrade could make data suddenly appear that wasn&apos;t there before. Huh. something to think about for a refactor.

Yes, definitely needs some thought before we make such a change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613516</commentid>
    <comment_count>5</comment_count>
    <who name="">dstockwell</who>
    <bug_when>2012-05-01 10:44:28 -0700</bug_when>
    <thetext>Ojan, r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613576</commentid>
    <comment_count>6</comment_count>
      <attachid>139504</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-01 12:04:40 -0700</bug_when>
    <thetext>Comment on attachment 139504
Patch

Clearing flags on attachment: 139504

Committed r115743: &lt;http://trac.webkit.org/changeset/115743&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613577</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-01 12:04:45 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>613599</commentid>
    <comment_count>8</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-05-01 13:07:55 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Ojan, r?

Hah, I&apos;ve transferred indexeddb reviews to Ojan!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614332</commentid>
    <comment_count>9</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2012-05-02 08:52:15 -0700</bug_when>
    <thetext>filed bug 85293 about the refactoring</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139503</attachid>
            <date>2012-04-30 13:05:52 -0700</date>
            <delta_ts>2012-04-30 13:08:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85224-20120430130553.patch</filename>
            <type>text/plain</type>
            <size>2379</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E3ODc3MGYzZWJjZTll
NThhOWRkMDRlYWU5OTEwMTRjYmI5ZWY5OS4uZjBlZDlhYjg1ZTAyZWNkNzk5NDdjYjM2YWU2Njc5
NjBjYjNlMDc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTMwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogc3RhbGUgaW5kZXggZW50cmllcyBtYXkgbm90IGJlIHJlbW92ZWQgaW4gc29tZSBjYXNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworCQkJCUVuc3VyZSB0aGF0
IHN0YWxlIGluZGV4IGVudHJpZXMgYXJlIHJlbW92ZWQgd2hlbiB0aGUgY29ycmVzcG9uZGluZwor
CQkJCW9iamVjdCBzdG9yZSBlbnRyeSBubyBsb25nZXIgZXhpc3RzLgorCisgICAgICAgIE5vIG5l
dyB0ZXN0cy4gQWRkcmVzc2VzIGEgcGVyZm9ybWFuY2UgLyBzdG9yYWdlIGxlYWsgdGhhdCBpcwor
CQkJCW5vdCBhbWVuYWJsZSB0byB2ZXJpZmljYXRpb24gaW4gYSBsYXlvdXQgdGVzdC4KKworICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDQtMjcgIERpbWl0cmkgR2xhemtvdiAgPGRnbGF6a292
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE1NDg0
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCTGV2ZWxE
QkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJM
ZXZlbERCQmFja2luZ1N0b3JlLmNwcAppbmRleCBkY2YzYThhYTcwMDMxNDM3MTc4MWM5MzQ3Yjcy
OGUwYjA2M2NiNWM2Li5kMzc2OWVhYzEwNzkwODkyYWRlZWY3MTkxODdjNjRkYzM5NDBjMWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJMZXZlbERCQmFj
a2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJM
ZXZlbERCQmFja2luZ1N0b3JlLmNwcApAQCAtMTI4NSw4ICsxMjg1LDEwIEBAIGJvb2wgSW5kZXhL
ZXlDdXJzb3JJbXBsOjpsb2FkQ3VycmVudFJvdygpCiAgICAgVmVjdG9yPGNoYXI+IHByaW1hcnlM
ZXZlbERCS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoaW5kZXhEYXRhS2V5LmRhdGFi
YXNlSWQoKSwgaW5kZXhEYXRhS2V5Lm9iamVjdFN0b3JlSWQoKSwgKm1fcHJpbWFyeUtleSk7CiAK
ICAgICBWZWN0b3I8Y2hhcj4gcmVzdWx0OwotICAgIGlmICghbV90cmFuc2FjdGlvbi0+Z2V0KHBy
aW1hcnlMZXZlbERCS2V5LCByZXN1bHQpKQorICAgIGlmICghbV90cmFuc2FjdGlvbi0+Z2V0KHBy
aW1hcnlMZXZlbERCS2V5LCByZXN1bHQpKSB7CisgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJlbW92
ZShtX2l0ZXJhdG9yLT5rZXkoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAg
ICBpbnQ2NF90IG9iamVjdFN0b3JlRGF0YVZlcnNpb247CiAgICAgY29uc3QgY2hhciogdCA9IGRl
Y29kZVZhckludChyZXN1bHQuYmVnaW4oKSwgcmVzdWx0LmVuZCgpLCBvYmplY3RTdG9yZURhdGFW
ZXJzaW9uKTsKQEAgLTEzNjYsOCArMTM2OCwxMCBAQCBib29sIEluZGV4Q3Vyc29ySW1wbDo6bG9h
ZEN1cnJlbnRSb3coKQogICAgIG1fcHJpbWFyeUxldmVsREJLZXkgPSBPYmplY3RTdG9yZURhdGFL
ZXk6OmVuY29kZShpbmRleERhdGFLZXkuZGF0YWJhc2VJZCgpLCBpbmRleERhdGFLZXkub2JqZWN0
U3RvcmVJZCgpLCAqbV9wcmltYXJ5S2V5KTsKIAogICAgIFZlY3RvcjxjaGFyPiByZXN1bHQ7Ci0g
ICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9wcmltYXJ5TGV2ZWxEQktleSwgcmVzdWx0KSkK
KyAgICBpZiAoIW1fdHJhbnNhY3Rpb24tPmdldChtX3ByaW1hcnlMZXZlbERCS2V5LCByZXN1bHQp
KSB7CisgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJlbW92ZShtX2l0ZXJhdG9yLT5rZXkoKSk7CiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBpbnQ2NF90IG9iamVjdFN0b3JlRGF0
YVZlcnNpb247CiAgICAgY29uc3QgY2hhciogdCA9IGRlY29kZVZhckludChyZXN1bHQuYmVnaW4o
KSwgcmVzdWx0LmVuZCgpLCBvYmplY3RTdG9yZURhdGFWZXJzaW9uKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139504</attachid>
            <date>2012-04-30 13:08:45 -0700</date>
            <delta_ts>2012-05-01 12:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85224-20120430130847.patch</filename>
            <type>text/plain</type>
            <size>2391</size>
            <attacher>dstockwell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2E3ODc3MGYzZWJjZTll
NThhOWRkMDRlYWU5OTEwMTRjYmI5ZWY5OS4uODc4NjU2OTM3YTIxYjY2OTBhYWJkNTE2NTIzMWE2
MTA0ZTNkZmEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA0LTMwICBEb3Vn
bGFzIFN0b2Nrd2VsbCAgPGRzdG9ja3dlbGxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIEluZGV4
ZWREQjogc3RhbGUgaW5kZXggZW50cmllcyBtYXkgbm90IGJlIHJlbW92ZWQgaW4gc29tZSBjYXNl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODUyMjQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbnN1cmUg
dGhhdCBzdGFsZSBpbmRleCBlbnRyaWVzIGFyZSByZW1vdmVkIHdoZW4gdGhlIGNvcnJlc3BvbmRp
bmcKKyAgICAgICAgb2JqZWN0IHN0b3JlIGVudHJ5IG5vIGxvbmdlciBleGlzdHMuCisKKyAgICAg
ICAgTm8gbmV3IHRlc3RzLiBBZGRyZXNzZXMgYSBwZXJmb3JtYW5jZSAvIHN0b3JhZ2UgbGVhayB0
aGF0IGlzCisgICAgICAgIG5vdCBhbWVuYWJsZSB0byB2ZXJpZmljYXRpb24gaW4gYSBsYXlvdXQg
dGVzdC4KKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkxldmVsREJCYWNraW5nU3Rv
cmUuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisKIDIwMTItMDQtMjcgIERpbWl0cmkgR2xhemtv
diAgPGRnbGF6a292QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMTE1NDg0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCTGV2ZWxEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAppbmRleCBkY2YzYThhYTcwMDMxNDM3
MTc4MWM5MzQ3YjcyOGUwYjA2M2NiNWM2Li5kMzc2OWVhYzEwNzkwODkyYWRlZWY3MTkxODdjNjRk
YzM5NDBjMWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJMZXZlbERCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9JREJMZXZlbERCQmFja2luZ1N0b3JlLmNwcApAQCAtMTI4NSw4ICsxMjg1LDEwIEBA
IGJvb2wgSW5kZXhLZXlDdXJzb3JJbXBsOjpsb2FkQ3VycmVudFJvdygpCiAgICAgVmVjdG9yPGNo
YXI+IHByaW1hcnlMZXZlbERCS2V5ID0gT2JqZWN0U3RvcmVEYXRhS2V5OjplbmNvZGUoaW5kZXhE
YXRhS2V5LmRhdGFiYXNlSWQoKSwgaW5kZXhEYXRhS2V5Lm9iamVjdFN0b3JlSWQoKSwgKm1fcHJp
bWFyeUtleSk7CiAKICAgICBWZWN0b3I8Y2hhcj4gcmVzdWx0OwotICAgIGlmICghbV90cmFuc2Fj
dGlvbi0+Z2V0KHByaW1hcnlMZXZlbERCS2V5LCByZXN1bHQpKQorICAgIGlmICghbV90cmFuc2Fj
dGlvbi0+Z2V0KHByaW1hcnlMZXZlbERCS2V5LCByZXN1bHQpKSB7CisgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPnJlbW92ZShtX2l0ZXJhdG9yLT5rZXkoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CiAKICAgICBpbnQ2NF90IG9iamVjdFN0b3JlRGF0YVZlcnNpb247CiAgICAgY29uc3Qg
Y2hhciogdCA9IGRlY29kZVZhckludChyZXN1bHQuYmVnaW4oKSwgcmVzdWx0LmVuZCgpLCBvYmpl
Y3RTdG9yZURhdGFWZXJzaW9uKTsKQEAgLTEzNjYsOCArMTM2OCwxMCBAQCBib29sIEluZGV4Q3Vy
c29ySW1wbDo6bG9hZEN1cnJlbnRSb3coKQogICAgIG1fcHJpbWFyeUxldmVsREJLZXkgPSBPYmpl
Y3RTdG9yZURhdGFLZXk6OmVuY29kZShpbmRleERhdGFLZXkuZGF0YWJhc2VJZCgpLCBpbmRleERh
dGFLZXkub2JqZWN0U3RvcmVJZCgpLCAqbV9wcmltYXJ5S2V5KTsKIAogICAgIFZlY3RvcjxjaGFy
PiByZXN1bHQ7Ci0gICAgaWYgKCFtX3RyYW5zYWN0aW9uLT5nZXQobV9wcmltYXJ5TGV2ZWxEQktl
eSwgcmVzdWx0KSkKKyAgICBpZiAoIW1fdHJhbnNhY3Rpb24tPmdldChtX3ByaW1hcnlMZXZlbERC
S2V5LCByZXN1bHQpKSB7CisgICAgICAgIG1fdHJhbnNhY3Rpb24tPnJlbW92ZShtX2l0ZXJhdG9y
LT5rZXkoKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CiAKICAgICBpbnQ2NF90IG9i
amVjdFN0b3JlRGF0YVZlcnNpb247CiAgICAgY29uc3QgY2hhciogdCA9IGRlY29kZVZhckludChy
ZXN1bHQuYmVnaW4oKSwgcmVzdWx0LmVuZCgpLCBvYmplY3RTdG9yZURhdGFWZXJzaW9uKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>