[Date Prev][Date Next]
Re: (ITS#7774) LMDB assertion failure during Postfix cache cleanup
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.