Skip Menu |
 

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
From: tlyu@mit.edu
Subject: SVN Commit

pull up r20214 from trunk

r20214@cathode-dark-space: tlyu | 2008-01-31 20:03:11 -0500
ticket: new
target_version: 1.6.4
tags: pullup
subject: libdb btree page split on zero index corrupts db
component: krb5-kdc

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: 20215
Changed Files:
_U branches/krb5-1-6/
U branches/krb5-1-6/src/plugins/kdb/db2/libdb2/btree/bt_split.c
U branches/krb5-1-6/src/plugins/kdb/db2/libdb2/test/run.test