From: Kurt Zeilenga Date: Wed, 25 Jan 2006 03:25:35 +0000 (+0000) Subject: Changes from HEAD X-Git-Tag: OPENLDAP_REL_ENG_2_3_19~4 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=e71141ac145e51e7bf225152221cba56152a6e65;p=openldap Changes from HEAD + Update libldap_r thread pool destroy hang fix (ITS#4368) + Fixed slapd slap_daemon destroy issue (ITS#4370) --- diff --git a/CHANGES b/CHANGES index cdbf2a98b2..1853dc29bc 100644 --- a/CHANGES +++ b/CHANGES @@ -2,7 +2,8 @@ OpenLDAP 2.3 Change Log OpenLDAP 2.3.19 Engineering Fixed libldap disable DH key exchange with DH params (ITS#4354) - Fixed libldap_r pool destroy hang (ITS#4349) + Fixed libldap_r thread pool destroy hang (ITS#4349,ITS#4368) + Fixed slapd slap_daemon destroy issue (ITS#4370) Fixed slapd-hdb livelock issue (ITS#4360) Fixed slapd-bdb/hdb auto-recovery issue (ITS#4361) Fixed slapd-bdb/hdb BDB 4.4 compatibility issues (ITS#4362) diff --git a/libraries/libldap_r/tpool.c b/libraries/libldap_r/tpool.c index 1937589b75..d044f05d1c 100644 --- a/libraries/libldap_r/tpool.c +++ b/libraries/libldap_r/tpool.c @@ -382,6 +382,7 @@ ldap_pvt_thread_pool_destroy ( ldap_pvt_thread_pool_t *tpool, int run_pending ) ldap_pvt_thread_cond_broadcast(&pool->ltp_cond); ldap_pvt_thread_cond_wait(&pool->ltp_cond, &pool->ltp_mutex); } + ldap_pvt_thread_mutex_unlock(&pool->ltp_mutex); while ((ctx = LDAP_STAILQ_FIRST(&pool->ltp_pending_list)) != NULL) { diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 8a6d1fa905..dac4749ae5 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -1136,6 +1136,12 @@ int slapd_daemon_init( const char *urls ) Debug( LDAP_DEBUG_ARGS, "daemon_init: %s\n", urls ? urls : "", 0, 0 ); + + ldap_pvt_thread_mutex_init( &slap_daemon.sd_mutex ); +#ifdef HAVE_TCPD + ldap_pvt_thread_mutex_init( &slap_daemon.tcpd_mutex ); +#endif + if( (rc = sockinit()) != 0 ) return rc; #ifdef HAVE_SYSCONF @@ -1205,11 +1211,6 @@ int slapd_daemon_init( const char *urls ) #endif ldap_charray_free( u ); - ldap_pvt_thread_mutex_init( &slap_daemon.sd_mutex ); - -#ifdef HAVE_TCPD - ldap_pvt_thread_mutex_init( &slap_daemon.tcpd_mutex ); -#endif return !i; }