[Date Prev][Date Next]
Re: (ITS#8355) [lmdb] Issues with sorted duplicate DBs with cursor delete
- To: openldap-its@OpenLDAP.org
- Subject: Re: (ITS#8355) [lmdb] Issues with sorted duplicate DBs with cursor delete
- From: firstname.lastname@example.org
- Date: Sun, 24 Jan 2016 11:44:55 +0000
- Auto-submitted: auto-generated (OpenLDAP-ITS)
> Full_Name: H Law
> Version: LMDB
> OS: Linux
> Submission from: (NULL) (22.214.171.124)
> It seems that, after using a cursor delete during a cursor traversal on a dup
> sort database, the cursor is in a strange state, when MDB_NEXT / MDB_NEXT_DUP
> ceases to work properly while MDB_PREV / MDB_PREV_DUP still functions.
Thanks for the report. Fixed now in git.
> In particular, when MDB_NEXT or MDB_NEXT_DUP is called after cursor deletion, if
> next key/value pair exists, the cursor will not advance, and got stuck by
> returning the same record when MDB_NEXT or MDB_NEXT_DUP is called repeatly. In
> case there is no next record, the program was hang.
> The following modified version of mtest3.c shows the issue. I am testing this
> on the latest commit 20dec1f69bf4860202c764ce92b1fbbe3d11a065 of lmdb on 20 Jan,
> on x86-64 Linux.
> I got a similar behaviour when a slightly earlier version of lmdb was
> cross-compiled with a Java wrapper for use on Android, which is why I am testing
> this. The issue should therefore not be platform specific.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/