Commit 79d33fe4 authored by Howard Chu's avatar Howard Chu
Browse files

ITS#9584 avoid busy-loop while refresh is serialized

parent e893e0e8
Pipeline #3012 passed with stage
in 46 minutes and 46 seconds
......@@ -923,6 +923,7 @@ check_syncprov(
#define SYNC_ERROR -101
#define SYNC_REPOLL -102
#define SYNC_PAUSED -103
#define SYNC_BUSY -104
static int
do_syncrep1(
......@@ -937,12 +938,8 @@ do_syncrep1(
void *ssl;
#endif
while ( ldap_pvt_thread_mutex_trylock( &si->si_cookieState->cs_refresh_mutex )) {
if ( slapd_shutdown )
return SYNC_SHUTDOWN;
if ( !ldap_pvt_thread_pool_pausecheck( &connection_pool ))
ldap_pvt_thread_yield();
}
if ( ldap_pvt_thread_mutex_trylock( &si->si_cookieState->cs_refresh_mutex ))
return SYNC_BUSY;
si->si_lastconnect = slap_get_time();
si->si_refreshDone = 0;
......
......@@ -165,7 +165,7 @@ PORT=`expr $BASEPORT + $n`
URI="ldap://${LOCALHOST}:$PORT/"
echo "olcSyncRepl: rid=00$n provider=$URI binddn=\"cn=config\" bindmethod=simple" >> $TMP
echo " credentials=$CONFIGPW searchbase=\"cn=config\" type=refreshAndPersist" >> $TMP
echo " retry=\"3 10 300 5\" timeout=3" >> $TMP
echo " retry=\"1 12 300 5\" timeout=3" >> $TMP
n=`expr $n + 1`
done
echo "-" >> $TMP
......@@ -227,7 +227,7 @@ P2=`expr $BASEPORT + $j`
U2="ldap://${LOCALHOST}:$P2/"
echo "olcSyncRepl: rid=00$j provider=$U2 binddn=\"cn=config\" bindmethod=simple" >> $TMP
echo " credentials=$CONFIGPW searchbase=\"cn=config\" type=refreshAndPersist" >> $TMP
echo " retry=\"3 10 300 5\" timeout=3" >> $TMP
echo " retry=\"1 12 300 5\" timeout=3" >> $TMP
j=`expr $j + 1`
done
cat <<EOF >> $TMP
......@@ -291,7 +291,7 @@ URI="ldap://${LOCALHOST}:$PORT/"
echo "olcSyncRepl: rid=01$n provider=$URI binddn=\"$MANAGERDN\" bindmethod=simple" >> $TMP
echo " credentials=$PASSWD searchbase=\"$BASEDN\" $SYNCTYPE" >> $TMP
echo " retry=\"3 10 300 5\" timeout=3" >> $TMP
echo " retry=\"1 12 300 5\" timeout=3" >> $TMP
n=`expr $n + 1`
done
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment