https://bugs.openldap.org/show_bug.cgi?id=9911
Issue ID: 9911
Summary: MDB_PROBLEM: Unexpected problem - txn should abort,
because of mdb_page_loose
Product: LMDB
Version: unspecified
Hardware: All
OS: All
Status: UNCONFIRMED
Keywords: needs_review
Severity: normal
Priority: ---
Component: liblmdb
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: ---
In mdb.master3, when running some test suite, the transaction commit fails with
MDB_PROBLEM: Unexpected problem - txn should abort
The operation that where executed on a blank database:
mdb_env_create
mdb_env_open with CREATE mode
mdb_txn_begin RW
mdb_put one key value
mdb_txn_commit
mdb_txn_begin RW
mdb_drop
mdb_txn_commit
This last commit fails with : MDB_PROBLEM: Unexpected problem - txn should
abort
My investigation shows that the lines 4401-4403 are triggered:
if ((unsigned)txn->mt_loose_count != txn->mt_u.dirty_list[0].mid) {
rc = MDB_PROBLEM; /* mt_loose_pgs does not match dirty_list */
goto fail;
}
And this is because of the commit #12ee1a2 "Use mdb_page_loose() more"
https://git.openldap.org/openldap/openldap/-/commit/12ee1a2d7104616ccb812db5d5f3548da507d9fc
that does a mdb_page_loose instead of a mdb_midl_append on line 9496.
Reverting this commit solves the problem.
This commit seems to be a non essential optimization.
But you will see into it as i am not so familiar with the refactoring that
Hallvard Furuseth did back in July 2017.
It would be nice to have an official fix from you, instead of this revert I did
temporally to be able to continue working.
--
You are receiving this mail because:
You are on the CC list for the issue.