]> git.ipfire.org Git - thirdparty/openldap.git/commitdiff
ITS#8589 syncrepl: defer on REFRESH_REQUIRED
authorHoward Chu <hyc@openldap.org>
Sun, 21 Mar 2021 17:41:19 +0000 (17:41 +0000)
committerHoward Chu <hyc@openldap.org>
Sun, 21 Mar 2021 17:41:19 +0000 (17:41 +0000)
Schedule a new retry instead of immediate looping back. This
will also prevent locking up cn=config replication.

servers/slapd/syncrepl.c

index db3e5ea22d77ea322799a84d7e015a0c752aa028..abf24f581c607f9cfdff4cdd10f25d9360bbaafe 100644 (file)
@@ -2027,7 +2027,6 @@ do_syncrepl(
        if ( !si->si_schemachecking )
                op->o_no_schema_check = 1;
 
-reload:
        /* Establish session, do search */
        if ( !si->si_ld ) {
                si->si_refreshDelete = 0;
@@ -2066,7 +2065,8 @@ reload:
                op->o_ndn = op->o_bd->be_rootndn;
                rc = do_syncrep2( op, si );
                if ( rc == LDAP_SYNC_REFRESH_REQUIRED ) {
-                       goto reload;
+                       /* give up but schedule an immedite retry */
+                       rc = SYNC_PAUSED;
                }
 
 deleted: