From 7127d5db11013ff53940f046acbe90e04623ec0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Kuzn=C3=ADk?= Date: Wed, 9 May 2018 16:07:11 +0100 Subject: [PATCH] ITS#8850 Wait until backends are closed before freeing connection_pool --- servers/slapd/daemon.c | 2 +- servers/slapd/init.c | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/servers/slapd/daemon.c b/servers/slapd/daemon.c index 42bb931ca6..2bdb60aa1d 100644 --- a/servers/slapd/daemon.c +++ b/servers/slapd/daemon.c @@ -3073,7 +3073,7 @@ loop: "slapd shutdown: waiting for %d operations/tasks to finish\n", t, 0, 0 ); } - ldap_pvt_thread_pool_destroy( &connection_pool, 1 ); + ldap_pvt_thread_pool_close( &connection_pool, 1 ); return NULL; } diff --git a/servers/slapd/init.c b/servers/slapd/init.c index d87f4c4211..eee96eddf3 100644 --- a/servers/slapd/init.c +++ b/servers/slapd/init.c @@ -229,6 +229,9 @@ int slap_shutdown( Backend *be ) "%s shutdown: initiated\n", slap_name, 0, 0 ); + /* Make sure the pool stops now even if we did not start up fully */ + ldap_pvt_thread_pool_close( &connection_pool, 1 ); + /* let backends do whatever cleanup they need to do */ return backend_shutdown( be ); } @@ -245,6 +248,8 @@ int slap_destroy(void) ber_bvarray_free( default_referral ); } + ldap_pvt_thread_pool_free( &connection_pool ); + /* clear out any thread-keys for the main thread */ ldap_pvt_thread_pool_context_reset( ldap_pvt_thread_pool_context());