• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Index file:
2version: 2.1
3entries: 3
4current id: 1
5last crash: 1
6head 0: 0x90000002
7tail 0: 0x90000002
8size 0: 0x1
9head 1: 0x90000001             <----
10tail 1: 0x90000000
11size 1: 0x2
12transaction: 0x0
13-------------------------
14
15Entry at 0xa0010002
16hash: 0x687d1422
17next entry: 0x0
18rankings: 0x90000000
19key length: 13
20key: "the first key"
21key addr: 0x0
22reuse count: 1
23----------
24
25Rankings at 0x90000000
26next: 0x90000000
27prev: 0x90000001
28entry: 0xa0010002
29dirty: 0
30----------
31
32Entry at 0xa0010003
33hash: 0x4a70620e
34next entry: 0x0
35rankings: 0x90000001
36key length: 14
37key: "the second key"
38key addr: 0x0
39reuse count: 0                 <---- list 0
40----------
41
42Rankings at 0x90000001
43next: 0x90000000
44prev: 0x90000001               <----- head
45entry: 0xa0010003
46dirty: 1                       <----- This was actually inserted on list 1
47----------
48
49Entry at 0xa0010004
50hash: 0x63909ecb
51next entry: 0x0
52rankings: 0x90000002
53key length: 14
54key: "some other key"
55key addr: 0x0
56reuse count: 0
57----------
58
59Rankings at 0x90000002
60next: 0x90000002
61prev: 0x90000002
62entry: 0xa0010004
63dirty: 0
64----------
65
66================================
67
68Generated with:
69
70  SetNewEviction();
71  SetMaxSize(20 * 1024 * 1024);
72  InitCache();
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));
77  entry->Close();
78  ASSERT_EQ(net::OK, CreateEntry(kName2, &entry));
79  entry->Close();
80  ASSERT_EQ(net::OK, CreateEntry("some other key", &entry));
81  entry->Close();
82
83  ASSERT_EQ(net::OK, OpenEntry(kName1, &entry));
84  entry->Close();
85
86  ASSERT_EQ(net::OK, OpenEntry(kName2, &entry));
87
88Set a breakpoint on that last line, and when the entry is moved from one list to another, crash the process:
89
90  rankings_->Remove(entry->rankings(), Rankings::NO_USE);
91  rankings_->Insert(entry->rankings(), false, Rankings::LOW_USE);
92  entry->entry()->Store();                                           <---- crash here
93