ldap/servers/slapd/back-ldbm/dblayer.c | 4 +++-
ldap/servers/slapd/back-ldbm/ldif2ldbm.c | 4 ++--
2 files changed, 5 insertions(+), 3 deletions(-)
New commits:
commit e2532d8f58510525496c2810c31ab3189cd6ee0a
Author: Rich Megginson <rmeggins(a)redhat.com>
Date: Fri Mar 2 09:38:10 2012 -0700
init txn thread private data for all database modes
Even though the indexing code explicitly disables the database opening in
transaction mode, it still uses transactions. So we have to init the
thread private data for transactions in all cases. This doesn't hurt
anything, just creates a thread private key. Also, in the indexing code,
move the dblayer_txn_init until after dblayer_start has been called.
Reviewed by: nkinder (Thanks!)
diff --git a/ldap/servers/slapd/back-ldbm/dblayer.c
b/ldap/servers/slapd/back-ldbm/dblayer.c
index c6f3863..c1a123c 100644
--- a/ldap/servers/slapd/back-ldbm/dblayer.c
+++ b/ldap/servers/slapd/back-ldbm/dblayer.c
@@ -1567,7 +1567,6 @@ dblayer_start(struct ldbminfo *li, int dbmode)
if (!(dbmode & DBLAYER_NO_DBTHREADS_MODE))
dbmode = DBLAYER_NORMAL_MODE; /* to restart helper threads */
}
- dblayer_init_pvt_txn();
}
if (priv->dblayer_private_mem) {
@@ -1710,6 +1709,9 @@ dblayer_start(struct ldbminfo *li, int dbmode)
open_flags |= DB_TXN_NOSYNC;
#endif
}
+ /* ldbm2index uses transactions but sets the transaction flag to off - we
+ need to dblayer_init_pvt_txn in that case */
+ dblayer_init_pvt_txn();
if (!((DBLAYER_IMPORT_MODE|DBLAYER_INDEX_MODE) & dbmode))
{
pEnv->dblayer_openflags = open_flags;
diff --git a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
index 77f7cc9..c802ff2 100644
--- a/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
+++ b/ldap/servers/slapd/back-ldbm/ldif2ldbm.c
@@ -1693,8 +1693,6 @@ ldbm_back_ldbm2index(Slapi_PBlock *pb)
run_from_cmdline = (task_flags & SLAPI_TASK_RUNNING_FROM_COMMANDLINE);
slapi_pblock_get(pb, SLAPI_BACKEND_TASK, &task);
- dblayer_txn_init(li, &txn);
-
if (run_from_cmdline) {
/* No ldbm backend exists until we process the config info. */
li->li_flags |= SLAPI_TASK_RUNNING_FROM_COMMANDLINE;
@@ -1945,6 +1943,8 @@ ldbm_back_ldbm2index(Slapi_PBlock *pb)
dbc->c_close(dbc);
}
+ dblayer_txn_init(li, &txn);
+
while (1) {
if ( g_get_shutdown() || c_get_shutdown() ) {
goto err_out;
Show replies by date