Hello!
The docs say quite clearly, after txn_commit the txn must not be used
again.
The documentation of txn_commit did confuse me (as well). https://github.com/LMDB/lmdb/blob/LMDB_0.9.21/libraries/liblmdb/lmdb.h#L994 Would you consider adding a line stressing that the txn gets released even in case any error is returned? (or something similar) I'm personally used to failing operations not "having externally observable effects" unless explicitly stated.
Thanks. --Vladimir