From: | tlyu@mit.edu |
Subject: | SVN Commit |
Splitting a btree page on index 0 can corrupt the database if the key
length plus data length is exactly a certain value. This certain size
causes the item to get the left page to itself, and causes the right
page to contain an erroneous additional index "hole" having an
uninitialized value. This bug may be one of the remaining causes of
unexplained database corruption reported over the years. Shawn Emery
provided useful data from actual instances of this corruption.
Add a test case for this bug. (Raw libdb test rather than kdb; the
latter would be much harder.)
Commit By: tlyu
Revision: 20214
Changed Files:
_U trunk/
U trunk/src/plugins/kdb/db2/libdb2/btree/bt_split.c
U trunk/src/plugins/kdb/db2/libdb2/test/run.test