From 5b518e5cc2246c7338303da6f3c30e39303b8ceb Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Mon, 30 Aug 2004 04:40:16 +0000 Subject: [PATCH] CSN, LDAPsync and related fixes --- servers/slapd/back-bdb/ctxcsn.c | 10 ++++++++++ servers/slapd/back-bdb/id2entry.c | 1 + servers/slapd/back-bdb/search.c | 2 +- 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/servers/slapd/back-bdb/ctxcsn.c b/servers/slapd/back-bdb/ctxcsn.c index 7c2b31ec36..1127995de3 100644 --- a/servers/slapd/back-bdb/ctxcsn.c +++ b/servers/slapd/back-bdb/ctxcsn.c @@ -58,6 +58,16 @@ bdb_csn_commit( rc = bdb_dn2entry( op, tid, &op->o_bd->be_context_csn, &ctxcsn_ei, 1, locker, &ctxcsn_lock ); + switch( rc ) { + case 0: + case DB_NOTFOUND: + break; + case DB_LOCK_DEADLOCK: + case DB_LOCK_NOTGRANTED: + return BDB_CSN_RETRY; + default: + return BDB_CSN_ABORT; + } *ctxcsn_e = ctxcsn_ei->bei_e; diff --git a/servers/slapd/back-bdb/id2entry.c b/servers/slapd/back-bdb/id2entry.c index 2635e1d424..05501b0e42 100644 --- a/servers/slapd/back-bdb/id2entry.c +++ b/servers/slapd/back-bdb/id2entry.c @@ -386,6 +386,7 @@ return_results: if ( op && !boi ) { boi = op->o_tmpcalloc(1,sizeof(struct bdb_op_info),op->o_tmpmemctx); boi->boi_lock = lock; + boi->boi_bdb = op->o_bd; op->o_private = boi; } diff --git a/servers/slapd/back-bdb/search.c b/servers/slapd/back-bdb/search.c index 5090c695f0..b3298840bd 100644 --- a/servers/slapd/back-bdb/search.c +++ b/servers/slapd/back-bdb/search.c @@ -532,7 +532,7 @@ bdb_do_search( Operation *op, SlapReply *rs, Operation *sop, } } - if ( opinfo ) { + if ( opinfo && opinfo->boi_txn ) { ltid = opinfo->boi_txn; locker = TXN_ID( ltid ); } else { -- 2.39.5