[Date Prev][Date Next]
I am currently testing OpenLDAP 2.1.12 with Berkeley DB 4.1.25 backend but I
run into a problem with the bdb_db_cache. I am testing by doing many modify
operations (the attribute that is modified is also indexed) in parallel. The
problem is that on many Berkeley DB calls I get the following error
"Transaction that opened the DB handle is still active". I have done some
research on this and I think it is because of the fact that the first
transaction that accessed the cache was responsible for the DB_OPEN call.
But before this transaction has been finished another transaction tries to
use the DB handle from the cache. This leads the mentioned error. I am now
wondering whether the DB_OPEN should use a transaction ID at all. Why
transaction protect it? I have made a patch to test by always using the
DB_AUTO_COMMIT flag and this seems to work fine now.
Can anyone tell me why the transaction ID is passed to the DB_OPEN call? And
whether my solution makes any sense?
Please note that this is my first post so these may just be some stupid
questions for you.