[Date Prev][Date Next]
Re: (ITS#8221) getting MDB_PAGE_FULL using mdb_cursor_del
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#8221) getting MDB_PAGE_FULL using mdb_cursor_del
- From: email@example.com
- Date: Sat, 26 Sep 2015 15:52:33 +0000
- Auto-submitted: auto-generated (OpenLDAP-ITS)
> firstname.lastname@example.org wrote:
>> Full_Name: Sergej Jure&#269;ko
>> Version: lmdb 0.9.16
>> OS: osx
>> URL: ftp://ftp.openldap.org/incoming/delerror.zip
>> Submission from: (NULL) (188.8.131.52)
>> Code and lmdb file is uploaded to ftp. Code is also here:
>> 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.
> Thanks for the code and data, it shows the problem pretty clearly.
> Unfortunately the solution is less obvious at the moment, still working on it.
Fixed now in mdb.master, please test and followup with results. Thanks.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/