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

(ITS#5925) [backend config] glue: no superior found in N-Way Multi-Master replication



Full_Name: Thomas Chemineau
Version: OPENLDAP_REL_ENG_2_4
OS: CentOS 5.2 64 bits
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (213.41.243.192)



When : when a replica replicates its entire cn=config from a provider, and the
configuration has gluing databases.

Suppose you have into your config backend the following :

8<--------
dn: olcDatabase={0}config,cn=config
olcSyncrepl: {0}rid=001 provider=ldap://1.2.3.4/ binddn="cn=config" bin
 dmethod=simple credentials=secret searchbase="cn=config" type=refreshAndPer
 sist retry="5 +" timeout=3
olcSyncrepl: {1}rid=002 provider=ldap://1.2.3.5/ binddn="cn=config" bin
 dmethod=simple credentials=secret searchbase="cn=config" type=refreshAndPer
 sist retry="5 +" timeout=3
[...]

dn: olcOverlay={0}syncprov,olcDatabase={0}config,cn=config
[...]

dn: olcDatabase={2}ldap,cn=config
olcSuffix: o=1,o=2
olcSubordinate: TRUE
[...]

dn: olcDatabase={3}bdb,cn=config
olcSuffix: o=2
[...]

dn: olcOverlay={0}glue,olcDatabase={3}bdb,cn=config
[...]
8<--------

slaptest passes successfully, and OpenLDAP starts.

When a new provider joins the N-Way Multi-Master replication, it replicates all
the configuration from the primary provider (which is indicated in its
minimalistic configuration).

But, the replication failed on the following error :

8<--------
Feb  5 18:25:04 server2 slapd[6202]: syncrepl_entry: rid=001 be_search (0) 
Feb  5 18:25:04 server2 slapd[6202]: syncrepl_entry: rid=001
olcDatabase={2}ldap,cn=config 
Feb  5 18:25:04 server2 slapd[6202]: glue: no superior found for sub o=1,o=2! 
Feb  5 18:25:04 server2 slapd[6202]: olcSubordinate: value #0: <olcSubordinate>
handler exited with 32! 
Feb  5 18:25:04 server2 slapd[6202]: null_callback : error code 0x50 
Feb  5 18:25:04 server2 slapd[6202]: syncrepl_entry: rid=001 be_add (80) 
Feb  5 18:25:04 server2 slapd[6202]: syncrepl_entry: rid=001 be_add failed (80)

Feb  5 18:25:04 server2 slapd[6202]: do_syncrepl: rid=001 retrying
8<--------

It appears that ldap's backend which is subordinate to an other backend should
be declared after this gluing database. This is exactly the contrary on how
works slapd.conf.

Thomas.