[Date Prev][Date Next]
(ITS#7505) liblmdb can fail with MDB_PAGE_FULL on a delete
Full_Name: Howard Chu
Submission from: (NULL) (126.96.36.199)
Submitted by: hyc
This is the last remaining FIXME in liblmdb/mdb.c...
mdb_rebalance() is always called after a delete operation. If the tree needs
balancing and it needs to move a node from one page to its sibling, the parent
page's separator keys will need updating. If the new separator key is larger
than the old one, it may not fit into the parent page, and mdb_update_key() will
Instead of giving up, mdb_update_key() should invoke mdb_page_split() to make
room for the new key.