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

(ITS#3477) syncrepl replicating children before parents

Full_Name: Darren Gamble
Version: 2.2.19
OS: Linux (2.6.9, Fedora Core 2)
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (

Good day,

We've noticed that with syncrepl under 2.2.19, most, but not all, of the entries
get replicated to the consumers.  If we remove the database and resync the
consumer, exactly the same entries are missing.

We ran the resync under heavy debugging (which causes it to take about a day, as
opposed to a minute), which revealed the problem.  The provider was giving (or
is it the consumer taking?) some entries before the parent had been added on the
consumer.  Of course, the consumer was unable to add these entries.  A sample
debug log entry:

Dec 20 10:21:47 dgamble slapd[26581]: => bdb_dn2id(
"areaCode=et,provinceCode=ab,ou=devices,o=shaw cablesystems,c=ca" )
Dec 20 10:21:47 dgamble slapd[26581]: <= bdb_dn2id: get failed: DB_NOTFOUND: No
matching key/data pair found (-30990)
Dec 20 10:21:47 dgamble slapd[26581]: bdb_add: parent does not exist
Dec 20 10:21:47 dgamble slapd[26581]: send_ldap_result: conn=4294967295 op=0
Dec 20 10:21:47 dgamble slapd[26581]: syncrepl_entry : be_add failed (32)

The consumer appears to retry the entries a few times later, and does eventually
replicate some, but not all, entries in that branch, leaving the replication
incomplete.  Searching the log reveals it is just this one branch in the tree
that has this problem.

We attempted to test this under 2.2.20, but we were unable to replicate any
entries (ITS# 3476).

Our test servers are loaded with 2.2.20 now, but we could roll back if more
information is needed.