From: Quanah Gibson-Mount Date: Tue, 2 Sep 2008 22:52:04 +0000 (+0000) Subject: ITS#5592 X-Git-Tag: OPENLDAP_REL_ENG_2_4_12~117 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=6e62c2939bdd3884a72dfb7bb4c254c29907c1a5;p=openldap ITS#5592 --- 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 ); }