From: Ondřej Kuzník Date: Wed, 18 Jan 2023 12:28:05 +0000 (+0000) Subject: ITS#9930 Just wait until si_mutex is ready X-Git-Tag: OPENLDAP_REL_ENG_2_6_4~11 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=77162fdafe1245d79a9372d64583e69d4000420c;p=thirdparty%2Fopenldap.git ITS#9930 Just wait until si_mutex is ready We're in a much better place now and there is only a single task active for a given syncinfo_t plus the task that's just scheduled it and is wrapping up. Any remaining times this wouldn't be true are probably bugs to be fixed. --- diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index b26cb32516..4d4ba540c8 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -2054,13 +2054,7 @@ do_syncrepl( Debug( LDAP_DEBUG_TRACE, "=>do_syncrepl %s\n", si->si_ridtxt ); - /* Don't get stuck here while a pause is initiated */ - while ( ldap_pvt_thread_mutex_trylock( &si->si_mutex )) { - if ( slapd_shutdown ) - return NULL; - if ( !ldap_pvt_thread_pool_pausewait( &connection_pool )) - ldap_pvt_thread_yield(); - } + ldap_pvt_thread_mutex_lock( &si->si_mutex ); si->si_too_old = 0;