[Date Prev][Date Next] [Chronological] [Thread] [Top]

retry: counter not reaching zero, continuing on



While trying to determine how syncrepl behaves in various error
conditions, I encountered an unexpected behaviour in which
the retry specification doesn't seem to work. A MASTER is
set up to use push replication to a REPLICA as follows:

database        ldap
hidden          on
suffix          ""
rootdn          "cn=slapd-ldap"
uri             ldap://REPLICA/
lastmod         on
restrict        all
sync_use_subentry       true

acl-bind        bindmethod=simple
                binddn="cn=Monitor"
                credentials=password

syncrepl        rid=001
                provider=ldapi://%2Fvar%2Frun%2Fldapi
                binddn="cn=Manager"
                bindmethod=simple
                credentials=passwd
                searchbase=""
                type=refreshAndPersist
                retry="5 5 60 +"


When I stop the REPLICA and add an entry on the MASTER, then the MASTER
is retrying every 5s and claims that 4 (sometimes 3) retries are left:

Jul 22 13:12:52 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:12:57 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (3 retries left)
Jul 22 13:13:02 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:07 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (3 retries left)
Jul 22 13:13:12 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:17 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:22 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:28 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:33 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:38 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:43 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:48 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:53 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)
Jul 22 13:13:58 MASTER slapd[23778]: do_syncrepl: rid=001 rc 52 retrying (4 retries left)

When I start REPLICA again, syncrepl succeeds.


Do I have to set some other option such that the retry specification
is actually used? That is, try every 5s for 5 times, then try every
60s. Or is the retry logic dependent on the error syncrepl encounters?


The full log for one failed retry is:

conn=1004 op=0 BIND dn="cn=manager" method=128
conn=1004 op=0 BIND dn="cn=manager" mech=SIMPLE ssf=0
conn=1004 op=0 RESULT tag=97 err=0 text=
conn=1004 op=1 SRCH base="" scope=2 deref=0 filter="(objectClass=*)"
conn=1004 op=1 SRCH attr=* +
srs csn 20110722201233.471069Z#000000#001#000000
log csn 20110722201233.471069Z#000000#001#000000
cmp 0, too old
log csn 20110722201252.820971Z#000000#001#000000
Entry uid=user68,ou=People,dc=example,dc=com CSN 20110722201233.471069Z#000000#001#000000 older or equal to ctx 20110722201233.471069Z#000000#001#000000
syncprov_search_response: cookie=rid=001,sid=001,csn=20110722201252.820971Z#000000#001#000000
syncrepl_entry: rid=001 LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD)
syncrepl_entry: rid=001 inserted UUID 95b838a2-4b55-4bcc-8b00-be329b138db0
conn=1004 fd=15 ACCEPT from PATH=/var/run/ldapi (PATH=/var/run/ldapi)
syncrepl_entry: rid=001 be_search (52)
syncrepl_entry: rid=001 uid=user69,ou=People,dc=example,dc=com
null_callback : error code 0x34
syncrepl_entry: rid=001 be_add uid=user69,ou=People,dc=example,dc=com (52)
syncrepl_entry: rid=001 be_add uid=user69,ou=People,dc=example,dc=com failed (52)
do_syncrepl: rid=001 rc 52 retrying (4 retries left)
conn=1004 op=2 UNBIND
conn=1004 fd=15 closed
connection_read(15): no connection!
connection_read(15): no connection!