wiredtiger/wiredtiger — pull request #658 by michaelcahill (2013-09-02 01:12:36+00:00)
Title: test/format failure: ins_head->head[i] != NULL

A test/format core dump, an assert in the `__split_row_page_inmem` code.

```
t, file:wt.wt, session.checkpoint: ../src/btree/rec_split.c, 176: ins_head->head[i] != NULL

#4 0x000000000043454d in __wt_assert (session=0x8eda30, error=0,
file_name=0x676015 "../src/btree/rec_split.c", line_number=176,
fmt=0x676012 "%s") at ../src/support/err.c:408
#5 0x0000000000453e4c in __split_row_page_inmem (session=0x8eda30,
orig=0x7fffc40015a0) at ../src/btree/rec_split.c:176
#6 0x0000000000454168 in __wt_split_page_inmem (session=0x8eda30,
page=0x7fffc40015a0) at ../src/btree/rec_split.c:248
#7 0x0000000000451843 in __wt_rec_evict (session=0x8eda30,
page=0x7fffc40015a0, exclusive=0) at ../src/btree/rec_evict.c:71
#8 0x000000000043e967 in __wt_evict_page (session=0x8eda30,
page=0x7fffc40015a0) at ../src/btree/bt_evict.c:355
#9 0x0000000000450823 in __wt_page_release (session=0x8eda30,
page=0x7fffc40015a0) at ../src/include/btree.i:537
#10 0x00000000004508b9 in __wt_page_swap_func (session=0x8eda30,
out=0x7fffc40015a0, in=0x7fffc4013750, inref=0x7fffc40137f8,
file=0x675c44 "../src/btree/bt_walk.c", line=338)
at ../src/include/btree.i:574
#11 0x0000000000451239 in __wt_tree_walk (session=0x8eda30,
pagep=0x7fffe6bfca30, flags=132) at ../src/btree/bt_walk.c:337
#12 0x000000000043eed4 in __wt_sync_file (session=0x8eda30, syncop=1)
at ../src/btree/bt_evict.c:535
```

Here's the insert-head/tail information:

```
(gdb) frame 6
#6 0x0000000000454168 in __wt_split_page_inmem (session=0x8eda30,
page=0x7fffc40015a0) at ../src/btree/rec_split.c:248
248	return (__split_row_page_inmem(session, page));
(gdb) down
#5 0x0000000000453e4c in __split_row_page_inmem (session=0x8eda30,
orig=0x7fffc40015a0) at ../src/btree/rec_split.c:176
176	WT_ASSERT(session, ins_head->head[i] != NULL);
(gdb) p *ins_head
$1 = {head = {0x7fffec017060, 0x7fffec017060, 0x7fffb4009b60, 0x7fffc0016550,
0x7fffc0016550, 0x7fffc0016550, 0x0, 0x0, 0x0, 0x0}, tail = {
0x7fffc0016550, 0x7fffc0016550, 0x7fffc0016550, 0x7fffc0016550,
0x7fffc0016550, 0x7fffc0016550, 0x0, 0x0, 0x0, 0x0}}
(gdb) p i
$2 = 6
(gdb) p ins
$3 = (WT_INSERT *) 0x7fffc0016550
```