[Date Prev][Date Next] [Chronological] [Thread] [Top]

(ITS#9029) MDB_MAP_FULL error after removing some records from DB



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.