From 6e62c2939bdd3884a72dfb7bb4c254c29907c1a5 Mon Sep 17 00:00:00 2001 From: Quanah Gibson-Mount Date: Tue, 2 Sep 2008 22:52:04 +0000 Subject: [PATCH] ITS#5592 --- CHANGES | 1 + servers/slapd/back-meta/conn.c | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/CHANGES b/CHANGES index ad6e1f5dec..d9e3f0a426 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ OpenLDAP 2.4 Change Log OpenLDAP 2.4.12 Engineering + Fixed slapd-meta quarantine behavior (ITS#5592) Fixed slapo-constraint string termination (ITS#5609) Fixed slapo-rwm callback cleanup (ITS#5601) diff --git a/servers/slapd/back-meta/conn.c b/servers/slapd/back-meta/conn.c index fbc33720ed..3b086cfc04 100644 --- a/servers/slapd/back-meta/conn.c +++ b/servers/slapd/back-meta/conn.c @@ -289,11 +289,12 @@ meta_back_init_one_conn( * don't return the connection */ if ( mt->mt_isquarantined ) { slap_retry_info_t *ri = &mt->mt_quarantine; - int dont_retry = 1; + int dont_retry = 0; if ( mt->mt_quarantine.ri_interval ) { ldap_pvt_thread_mutex_lock( &mt->mt_quarantine_mutex ); - if ( mt->mt_isquarantined == LDAP_BACK_FQ_YES ) { + dont_retry = ( mt->mt_isquarantined > LDAP_BACK_FQ_NO ); + if ( dont_retry ) { dont_retry = ( ri->ri_num[ ri->ri_idx ] == SLAP_RETRYNUM_TAIL || slap_get_time() < ri->ri_last + ri->ri_interval[ ri->ri_idx ] ); if ( !dont_retry ) { @@ -307,9 +308,10 @@ meta_back_init_one_conn( Debug( LDAP_DEBUG_ANY, "%s %s.\n", op->o_log_prefix, buf, 0 ); } + + mt->mt_isquarantined = LDAP_BACK_FQ_RETRYING; } - mt->mt_isquarantined = LDAP_BACK_FQ_RETRYING; } ldap_pvt_thread_mutex_unlock( &mt->mt_quarantine_mutex ); } -- 2.39.5