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

(ITS#8221) getting MDB_PAGE_FULL using mdb_cursor_del



Full_Name: Sergej Jurečko
Version: lmdb 0.9.16
OS: osx
URL: ftp://ftp.openldap.org/incoming/delerror.zip
Submission from: (NULL) (193.189.172.218)


Code and lmdb file is uploaded to ftp. Code is also here:
https://gist.github.com/SergejJurecko/68979ff6460806581ad5

If you run the code on the uploaded lmdb file, it will result in MDB_PAGE_FULL
error out of mdb_cursor_del. 

I use dupsorts a lot in my app. Every value in the dupsort has 2 64bit integers
and 1 u8 in the beginning, which are used in the custom comparison function to
sort the values. 

During normal operation values are added to the end of the dupsort and
eventually a cleanup operation occurs that deletes unused values. 

The example app tries to delete the first value in the dupsort. But it will fail
the same if it tries to delete the next one instead.