9 head 1: 0x90000001 <----
13 -------------------------
25 Rankings at 0x90000000
39 reuse count: 0 <---- list 0
42 Rankings at 0x90000001
44 prev: 0x90000001 <----- head
46 dirty: 1 <----- This was actually inserted on list 1
59 Rankings at 0x90000002
66 ================================
71 SetMaxSize(20 * 1024 * 1024);
73 const char* kName1 = "the first key";
74 const char* kName2 = "the second key";
75 disk_cache::Entry* entry;
76 ASSERT_EQ(net::OK, CreateEntry(kName1, &entry));
78 ASSERT_EQ(net::OK, CreateEntry(kName2, &entry));
80 ASSERT_EQ(net::OK, CreateEntry("some other key", &entry));
83 ASSERT_EQ(net::OK, OpenEntry(kName1, &entry));
86 ASSERT_EQ(net::OK, OpenEntry(kName2, &entry));
88 Set a breakpoint on that last line, and when the entry is moved from one list to another, crash the process:
90 rankings_->Remove(entry->rankings(), Rankings::NO_USE);
91 rankings_->Insert(entry->rankings(), false, Rankings::LOW_USE);
92 entry->entry()->Store(); <---- crash here