diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 2104c49476..8a2e87f386 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -3168,16 +3168,16 @@ syncprov_db_close( } #ifdef SLAP_CONFIG_DELETE - ldap_pvt_thread_mutex_lock( &si->si_ops_mutex ); - for ( so=si->si_ops, sonext=so; so; so=sonext ) { - SlapReply rs = {REP_RESULT}; - rs.sr_err = LDAP_UNAVAILABLE; - send_ldap_result( so->s_op, &rs ); - sonext=so->s_next; - syncprov_drop_psearch( so, 0); + if ( !slapd_shutdown ) { + for ( so=si->si_ops, sonext=so; so; so=sonext ) { + SlapReply rs = {REP_RESULT}; + rs.sr_err = LDAP_UNAVAILABLE; + send_ldap_result( so->s_op, &rs ); + sonext=so->s_next; + syncprov_drop_psearch( so, 0); + } + si->si_ops=NULL; } - si->si_ops=NULL; - ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex ); overlay_unregister_control( be, LDAP_CONTROL_SYNC ); #endif /* SLAP_CONFIG_DELETE */