Index file:
magic: c103cac3
version: 2.0
entries: 2                  <---- there is an extra entry on the lru.
total bytes: 47
last file number: 0
current id: 3
table length: 65536
last crash: 1
experiment: 0
head 0: 0x90000000
tail 0: 0x90000001
size 0: 0x0
head 1: 0x0
tail 1: 0x0
size 1: 0x0
head 2: 0x0
tail 2: 0x0
size 2: 0x0
head 3: 0x0
tail 3: 0x0
size 3: 0x0
head 4: 0x0
tail 4: 0x0
size 4: 0x0
transaction: 0x0
operation: 0
operation list: 0
-------------------------

Block file: data_0
magic: c104cac3
version: 2.0
file id: 0
next file id: 0
entry size: 36
current entries: 2
max entries: 1024
updating: 0
empty sz 1: 0
empty sz 2: 1
empty sz 3: 0
empty sz 4: 255
user 0: 0x0
user 1: 0x0
user 2: 0x0
user 3: 0x0
-------------------------

Block file: data_1
magic: c104cac3
version: 2.0
file id: 1
next file id: 0
entry size: 256
current entries: 4
max entries: 1024
updating: 0
empty sz 1: 0
empty sz 2: 1
empty sz 3: 0
empty sz 4: 254
user 0: 0x0
user 1: 0x0
user 2: 0x0
user 3: 0x0
-------------------------

Block file: data_2
magic: c104cac3
version: 2.0
file id: 2
next file id: 0
entry size: 1024
current entries: 0
max entries: 0
updating: 0
empty sz 1: 0
empty sz 2: 0
empty sz 3: 0
empty sz 4: 0
user 0: 0x0
user 1: 0x0
user 2: 0x0
user 3: 0x0
-------------------------

Block file: data_3
magic: c104cac3
version: 2.0
file id: 3
next file id: 0
entry size: 4096
current entries: 0
max entries: 0
updating: 0
empty sz 1: 0
empty sz 2: 0
empty sz 3: 0
empty sz 4: 0
user 0: 0x0
user 1: 0x0
user 2: 0x0
user 3: 0x0
-------------------------

Entry at 0xa0010002
hash: 0xc24ac438
next entry: 0x0
rankings: 0x90000000
key length: 13
key: "The first key"
key addr: 0x0
reuse count: 0
refetch count: 0
state: 0
data size 0: 20
data addr 0: 0xa0010005
data size 1: 0
data addr 1: 0x0
data size 2: 0
data addr 2: 0x0
data size 3: 0
data addr 3: 0x0
----------

Rankings at 0x90000000
next: 0x90000001
prev: 0x90000000
entry: 0xa0010002
dirty: 0
pointer: 0x0

================================

Generated with: (see steps on the bug 69135)

  SetMask(0x1);  // 2-entry table.
  SetMaxSize(0x3000);  // 12 kB.
  InitCache();

  std::string key1("The first key");
  std::string key2("The Second key");
  std::string key3("The third key");
  disk_cache::Entry* entry;

  ASSERT_EQ(net::OK, CreateEntry(key1, &entry));
  entry->Close();
  ASSERT_EQ(net::OK, CreateEntry(key2, &entry));
  entry->Close();
  ASSERT_EQ(net::OK, CreateEntry(key3, &entry));
  entry->Close();

  const int kSize = 20;
  ASSERT_EQ(net::OK, OpenEntry(key1, &entry));
  scoped_refptr<net::IOBuffer> buf = new net::IOBuffer(kSize);
  memset(buf->data(), 0, kSize);
  EXPECT_EQ(kSize, WriteData(entry, 0, 0, buf, kSize, false));
  entry->Close();

  ASSERT_EQ(net::OK, OpenEntry(key2, &entry));  <--- 1st crash.
  ASSERT_NE(net::OK, OpenEntry(key2, &entry));  <--- 2nd crash. *

  ASSERT_EQ(net::OK, DoomEntry(key3));

(*) and trick the code into deleting the dirty flag. 