Wietse Venema:
You're using an old read-only transaction which cannot coexist with:
- mdb_env_set_mapsize() which moves the map which a cursor in the reader is using.
- several write-transactions + MDB_NOLOCK. The flag means the writers do not know about the reader, so they reuse pages from the snapshot the reader is using. The reader can survive while the metapages hold on to its snapshot, i.e. 1 or 2 write commits (I think).
I am willing to be educated. Where in the LMDB API documentation would I have learned that I have to consider these details?
Wietse