On 2014-01-02 11:50, Pieter Martin wrote:
The problems goes away by using mdb_del instead. However I am still getting strange behaviour. In particular on deletion. It seems as though the cursor gets confused when the data it refers to has been removed.
There are DUPSORT-cursor bugs when you have a cursor on a DBI and modify it using another cursor. ITS#7771 in www.openldap.org/its/, not yet fixed. Is that what you are doing?
Unfortunately I am unable to reproduce the error in a simple scenario. It is happening from java code calling lmdb via JNI.
In general I keep a cursor open on the db. Then I remove an entry and after that call MDB_NEXT on the cursor. Occasionally it then crashes.
(...) When removing data, can MDB_NEXT be called or should the cursor be reset first?
It should work, but that code is fairly new.