HLaw wrote:
On Sunday, January 24, 2016 07:44 PM, Howard Chu wrote:
hhclaw.eb@gmail.com wrote:
Full_Name: H Law Version: LMDB OS: Linux URL: Submission from: (NULL) (42.2.241.129)
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.
Thank you. It now works except for the case when the deleted record is just before the end of the database. In this case the next call to cursor get with MDB_NEXT / MDB_NEXT_DUP will still hang the program, instead of returning not found (or other errors). (It seems to be stuck at some wait state without heavy cpu usage).
Your test program is broken, you are trying to create a new write txn in the same thread as an existing write txn.