gdochev@yahoo.com wrote:
Full_Name: George Dochev Version: OS: Windows/OSX/Linux URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (2601:582:4500:e134:1d59:965c:aecc:5697)
I updated from 0.9.15 to 0.9.18 and started getting intermittent segfaults in one of my unit tests. In my test when I issue mdb_txn_commit and get back MDB_MAP_FULL I abort the transaction,
You've misused the API. The txn has already been released by txn_commit, you cannot call abort on it at that point. This was already clearly spelled out in the docs for mdb_txn_commit.
Closing this ITS.
expand the database through a call to
mdb_env_set_mapsize and attempt a retry. In the retry I issue mdb_txn_begin again which is where I crash when it calls mdb_txn_renew0(MDB_txn *txn) with txn pointing to garbage.
Some additional info which may or may not be relevant:
The db size is 1MB aligned and there are no active transactions prior to the call to mdb_env_set_mapsize other than the one that I aborted as a result of the MDB_MAP_FULL. The environment was initially opened with MDB_NOSYNC | MDB_WRITEMAP | MDB_NOMETASYNC | MDB_NOTLS.
The crash is intermittent but reproducible in all my configurations.
Regards, George