Full_Name: Alex Version: LMDB 0.9.23 OS: iOS URL: https://hastebin.com/raw/arexecefew Submission from: (NULL) (2620:119:5001:3000:242c:3bea:acec:6a7d)
Hey guys, We are using LMDB in our LRUCache implementation and facing the issue: when we evict old records from this cache sometimes we have MDB_MAP_FULL error though record eviction by using mdb_del() went fine. We were able to isolate an issue in the unit test which is run from just one thread. Since there are no any concurrent readers for this case we are expecting LMDB to claim free pages immediately after we commit "deletion" transaction, but in some rare cases it still raises MDB_MAP_FULL error.
The unit test scenario is as follows: 1) start with empty DB 2) keep inserting random records until hi the first MDB_FULL 3) delete some old recrods to some pages 4) try to insert new record and check that is succeeded.
The step 4 fails with another MDB_FULL error We enable debugging and attached a debug logs from LDMB. Hope it would be helpful.