Full_Name: Hallvard B Furuseth Version: mdb.master, f08b70d0df323ccb33b94a648e9a1b6efd718cae OS: Linux x86_64 URL: ftp://ftp.openldap.org/incoming/Hallvard-Furuseth-151118-3.c Submission from: (NULL) (81.191.45.31) Submitted by: hallvard
commit(nested txn) will sometimes hit mdb.c:3528:mdb_tassert(txn, i == x).
A fix is to drop the optimization /* Simplify the above for single-ancestor case */ and always use the "if (parent->mt_parent)" branch. Don't know yet if that just hides the symptom though.
To reproduce:
gcc -pthread -g -I. Hallvard-Furuseth-151118-3.c rm -f testdb/*; ./a.out -r313873253