[Date Prev][Date Next]
(ITS#8300) LMDB mdb_cursor_del data loss
Full_Name: Michael Alyn Miller
Version: Git head
OS: Windows 8.1 x64, NixOS 14.12 x64
Submission from: (NULL) (18.104.22.168)
Another issue similar to ITS#8264 and ITS#8299, but this time using
mdb_cursor_del inside of the cursor causes corruption. mdb_del causes
corruption as well, but this is the first time that I have seen mdb_cursor_del
do the wrong thing.
In this case, mdb_cursor_del incorrectly removes one extra key (a key
prefixed with 0c000000000000003a...) in addition to correctly removing all of
the keys that begin with 0d000000000000003a.
mdb_del does not remove that extra key, but instead fails to remove two
0d000000000000003a keys that should have been removed.
I am not sure if these are two different bugs or if they are caused by the same
mdb_cursor_del performs correctly on subsequent runs if you do *not* remove the
database between tests, whereas mdb_del continues to fail, but stabilizes on a
different set of results after the first run.