Home | History | Annotate | Download | only in dirty_entry5
      1 Index file:
      2 magic: c103cac3
      3 version: 2.0
      4 entries: 2                  <---- there is an extra entry on the lru.
      5 total bytes: 47
      6 last file number: 0
      7 current id: 3
      8 table length: 65536
      9 last crash: 1
     10 experiment: 0
     11 head 0: 0x90000000
     12 tail 0: 0x90000001
     13 size 0: 0x0
     14 head 1: 0x0
     15 tail 1: 0x0
     16 size 1: 0x0
     17 head 2: 0x0
     18 tail 2: 0x0
     19 size 2: 0x0
     20 head 3: 0x0
     21 tail 3: 0x0
     22 size 3: 0x0
     23 head 4: 0x0
     24 tail 4: 0x0
     25 size 4: 0x0
     26 transaction: 0x0
     27 operation: 0
     28 operation list: 0
     29 -------------------------
     30 
     31 Block file: data_0
     32 magic: c104cac3
     33 version: 2.0
     34 file id: 0
     35 next file id: 0
     36 entry size: 36
     37 current entries: 2
     38 max entries: 1024
     39 updating: 0
     40 empty sz 1: 0
     41 empty sz 2: 1
     42 empty sz 3: 0
     43 empty sz 4: 255
     44 user 0: 0x0
     45 user 1: 0x0
     46 user 2: 0x0
     47 user 3: 0x0
     48 -------------------------
     49 
     50 Block file: data_1
     51 magic: c104cac3
     52 version: 2.0
     53 file id: 1
     54 next file id: 0
     55 entry size: 256
     56 current entries: 4
     57 max entries: 1024
     58 updating: 0
     59 empty sz 1: 0
     60 empty sz 2: 1
     61 empty sz 3: 0
     62 empty sz 4: 254
     63 user 0: 0x0
     64 user 1: 0x0
     65 user 2: 0x0
     66 user 3: 0x0
     67 -------------------------
     68 
     69 Block file: data_2
     70 magic: c104cac3
     71 version: 2.0
     72 file id: 2
     73 next file id: 0
     74 entry size: 1024
     75 current entries: 0
     76 max entries: 0
     77 updating: 0
     78 empty sz 1: 0
     79 empty sz 2: 0
     80 empty sz 3: 0
     81 empty sz 4: 0
     82 user 0: 0x0
     83 user 1: 0x0
     84 user 2: 0x0
     85 user 3: 0x0
     86 -------------------------
     87 
     88 Block file: data_3
     89 magic: c104cac3
     90 version: 2.0
     91 file id: 3
     92 next file id: 0
     93 entry size: 4096
     94 current entries: 0
     95 max entries: 0
     96 updating: 0
     97 empty sz 1: 0
     98 empty sz 2: 0
     99 empty sz 3: 0
    100 empty sz 4: 0
    101 user 0: 0x0
    102 user 1: 0x0
    103 user 2: 0x0
    104 user 3: 0x0
    105 -------------------------
    106 
    107 Entry at 0xa0010002
    108 hash: 0xc24ac438
    109 next entry: 0x0
    110 rankings: 0x90000000
    111 key length: 13
    112 key: "The first key"
    113 key addr: 0x0
    114 reuse count: 0
    115 refetch count: 0
    116 state: 0
    117 data size 0: 20
    118 data addr 0: 0xa0010005
    119 data size 1: 0
    120 data addr 1: 0x0
    121 data size 2: 0
    122 data addr 2: 0x0
    123 data size 3: 0
    124 data addr 3: 0x0
    125 ----------
    126 
    127 Rankings at 0x90000000
    128 next: 0x90000001
    129 prev: 0x90000000
    130 entry: 0xa0010002
    131 dirty: 0
    132 pointer: 0x0
    133 
    134 ================================
    135 
    136 Generated with: (see steps on the bug 69135)
    137 
    138   SetMask(0x1);  // 2-entry table.
    139   SetMaxSize(0x3000);  // 12 kB.
    140   InitCache();
    141 
    142   std::string key1("The first key");
    143   std::string key2("The Second key");
    144   std::string key3("The third key");
    145   disk_cache::Entry* entry;
    146 
    147   ASSERT_EQ(net::OK, CreateEntry(key1, &entry));
    148   entry->Close();
    149   ASSERT_EQ(net::OK, CreateEntry(key2, &entry));
    150   entry->Close();
    151   ASSERT_EQ(net::OK, CreateEntry(key3, &entry));
    152   entry->Close();
    153 
    154   const int kSize = 20;
    155   ASSERT_EQ(net::OK, OpenEntry(key1, &entry));
    156   scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(kSize);
    157   memset(buf->data(), 0, kSize);
    158   EXPECT_EQ(kSize, WriteData(entry, 0, 0, buf, kSize, false));
    159   entry->Close();
    160 
    161   ASSERT_EQ(net::OK, OpenEntry(key2, &entry));  <--- 1st crash.
    162   ASSERT_NE(net::OK, OpenEntry(key2, &entry));  <--- 2nd crash. *
    163 
    164   ASSERT_EQ(net::OK, DoomEntry(key3));
    165 
    166 (*) and trick the code into deleting the dirty flag.