[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#8622) Getting MDB_CORRUPTED when deleting within a DUPSORT database



Full_Name: Hallvard B Furuseth
Version: LMDB_0.9.19, mdb.master
OS: Linux x86_64
URL: http://www.openldap.org/lists/openldap-technical/201703/msg00043.html
Submission from: (NULL) (193.157.240.142)
Submitted by: hallvard


This is Klaus Malorny's test case from openldap-technical (linked
below).  Compiled with gcc -std=gnu99.  Breaks mdv.master and mdb.RE:
....
33000000 records written
testing
mdb_cursor_get: unexpected error -30796: MDB_CORRUPTED: Located page was wrong
type

In LMDB 0.9.18, the test case instead asserted:
mdb.c:5647: Assertion 'mc->mc_flags & C_INITIALIZED' failed in
mdb_cursor_next()

That was fixed by commit b46fc3e438d8085d5e5fc7d558c0002ee1e2753c
"ITS#8406 fix xcursors after cursor_del".

Then it broke again at 6b1df0e4c7fadd21d1233d7157229b2d89ccaa04 "More
for ITS#8406 (xcursor fixups)", giving the MDB_CORRUPTED.