Sam Dave wrote:
1. I create a read-only transaction on an environment with mdb_txn_begin().
2.Then I get a database handle on the same environment (using mdb_dbi_open() within a
3. Finally I try to create and use a cursor using the database in 2. and transaction in
1. but I get various runtime errors ("Segmentation fault" or "double
free or corruption").
However, if I switch 1. and 2., everything works.
Must a database really be created before a transaction? If so, curious to learn if this
is mentioned anywhere in the docs (I didn't see it)
The docs are quite explicit:
The database handle will be private to the current transaction until the transaction is
After a successful commit the handle will reside in the shared environment, and may be
used by other transactions.
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/