From 76e15b6e02f59b762746d71cb6933aa722705a27 Mon Sep 17 00:00:00 2001 From: Howard Chu Date: Thu, 7 Feb 2013 18:23:25 +0000 Subject: [PATCH] ITS#6365 wait for read locks in tool mode Fix commit e5b96f2c764f2ca8106560a9e46d3a9880cc2a12 --- servers/slapd/back-bdb/init.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/servers/slapd/back-bdb/init.c b/servers/slapd/back-bdb/init.c index 1d8527332a..57690fc532 100644 --- a/servers/slapd/back-bdb/init.c +++ b/servers/slapd/back-bdb/init.c @@ -529,7 +529,13 @@ shm_retry: } if ( !quick ) { - TXN_BEGIN(bdb->bi_dbenv, NULL, &bdb->bi_cache.c_txn, DB_READ_COMMITTED | DB_TXN_NOWAIT); + int txflag = DB_READ_COMMITTED; + /* avoid deadlocks in server; tools should + * wait since they have no deadlock retry mechanism. + */ + if ( slapMode & SLAP_SERVER_MODE ) + txflag |= DB_TXN_NOWAIT; + TXN_BEGIN(bdb->bi_dbenv, NULL, &bdb->bi_cache.c_txn, txflag); } entry_prealloc( bdb->bi_cache.c_maxsize ); -- 2.39.2