Hallvard Breien Furuseth:
Wietse Venema writes:
Why do you talk about map size changes when I delete a database entry??
That's how Postfix uses lmdb. It calls mdb_env_set_mapsize(). Looking
As written in the bug report the assertion also failed with mdb_map_size set to an insanely large value (half a billion) in which case the map size never changes.
But, it is good to know that the cursor is invalidated by both map size changes and transactions that change the database.
I can confirm that with LMDB-0.9.10 + ITS#7756 patch, the assertion failure goes away when I close the cursor (and its read transaction) before changing the map or the database, and restore the cursor afterwards. I guess this got broken when things were changed to use external locks in order to avoid world-writable lockfiles.
Wietse