| Index: net/data/cache_tests/bad_rankings3/contents.txt
|
| ===================================================================
|
| --- net/data/cache_tests/bad_rankings3/contents.txt (revision 0)
|
| +++ net/data/cache_tests/bad_rankings3/contents.txt (revision 0)
|
| @@ -0,0 +1,92 @@
|
| +Index file:
|
| +version: 2.1
|
| +entries: 3
|
| +current id: 1
|
| +last crash: 1
|
| +head 0: 0x90000002
|
| +tail 0: 0x90000002
|
| +size 0: 0x1
|
| +head 1: 0x90000001 <----
|
| +tail 1: 0x90000000
|
| +size 1: 0x2
|
| +transaction: 0x0
|
| +-------------------------
|
| +
|
| +Entry at 0xa0010002
|
| +hash: 0x687d1422
|
| +next entry: 0x0
|
| +rankings: 0x90000000
|
| +key length: 13
|
| +key: "the first key"
|
| +key addr: 0x0
|
| +reuse count: 1
|
| +----------
|
| +
|
| +Rankings at 0x90000000
|
| +next: 0x90000000
|
| +prev: 0x90000001
|
| +entry: 0xa0010002
|
| +dirty: 0
|
| +----------
|
| +
|
| +Entry at 0xa0010003
|
| +hash: 0x4a70620e
|
| +next entry: 0x0
|
| +rankings: 0x90000001
|
| +key length: 14
|
| +key: "the second key"
|
| +key addr: 0x0
|
| +reuse count: 0 <---- list 0
|
| +----------
|
| +
|
| +Rankings at 0x90000001
|
| +next: 0x90000000
|
| +prev: 0x90000001 <----- head
|
| +entry: 0xa0010003
|
| +dirty: 1 <----- This was actually inserted on list 1
|
| +----------
|
| +
|
| +Entry at 0xa0010004
|
| +hash: 0x63909ecb
|
| +next entry: 0x0
|
| +rankings: 0x90000002
|
| +key length: 14
|
| +key: "some other key"
|
| +key addr: 0x0
|
| +reuse count: 0
|
| +----------
|
| +
|
| +Rankings at 0x90000002
|
| +next: 0x90000002
|
| +prev: 0x90000002
|
| +entry: 0xa0010004
|
| +dirty: 0
|
| +----------
|
| +
|
| +================================
|
| +
|
| +Generated with:
|
| +
|
| + SetNewEviction();
|
| + SetMaxSize(20 * 1024 * 1024);
|
| + InitCache();
|
| + const char* kName1 = "the first key";
|
| + const char* kName2 = "the second key";
|
| + disk_cache::Entry* entry;
|
| + ASSERT_EQ(net::OK, CreateEntry(kName1, &entry));
|
| + entry->Close();
|
| + ASSERT_EQ(net::OK, CreateEntry(kName2, &entry));
|
| + entry->Close();
|
| + ASSERT_EQ(net::OK, CreateEntry("some other key", &entry));
|
| + entry->Close();
|
| +
|
| + ASSERT_EQ(net::OK, OpenEntry(kName1, &entry));
|
| + entry->Close();
|
| +
|
| + ASSERT_EQ(net::OK, OpenEntry(kName2, &entry));
|
| +
|
| +Set a breakpoint on that last line, and when the entry is moved from one list to another, crash the process:
|
| +
|
| + rankings_->Remove(entry->rankings(), Rankings::NO_USE);
|
| + rankings_->Insert(entry->rankings(), false, Rankings::LOW_USE);
|
| + entry->entry()->Store(); <---- crash here
|
|
|
| Property changes on: net\data\cache_tests\bad_rankings3\contents.txt
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + native
|
|
|
|
|