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

Initializing cn=config from existing multi-master setup via syncrepl - "new entry is older than ours"



Hi all,

We have setup a couple of servers in N-way multimaster config, using
back-config, as explained in the admin guide. These all use RE24,
checked out today.

We are now trying to add another server to the existing cluster. To do
this, we want to replicate the existing cn=config branch from the
cluster, to initialize the config for the new server.

To do this, we start the new server with a minimal cn=config branch,
making it a syncrepl consumer to an existing server (consumer only, no
multimaster on this new server):
8<------------
dn: cn=config
objectClass: olcGlobal
cn: config
olcServerID: 2
olcLogLevel: sync stats

dn: olcDatabase={0}config,cn=config
objectClass: olcDatabaseConfig
olcDatabase: {0}config
olcRootPW: secret
olcSyncRepl: rid=001 provider=ldap://server1/ binddn="cn=config"
bindmethod=simple
  credentials=secret searchbase="cn=config" type=refreshAndPersist
  retry="5 5 300 5" timeout=3
8<------------

Then, we start the server with slapd -c "rid=001,csn=0" to force a full
reload. This successfully loads the config branch from the master,
*except* entries that already existed in the new server's config branch.
These produce the following errors:
8<------------
Feb  3 18:22:43 server2 slapd[12893]: @(#) $OpenLDAP: slapd 2.4.X (Feb 
3 2009 12:10:46) $    
root@server2.test.lan:/root/sources/openldap-cvs-re24/servers/slapd
Feb  3 18:22:43 server2 slapd[12894]: slap_queue_csn: queing 0x194e31f0
20090203172243.314729Z#000000#002#000000
Feb  3 18:22:43 server2 slapd[12894]: slap_graduate_commit_csn: removing
0x194e3930 20090203172243.314729Z#000000#002#000000
Feb  3 18:22:43 server2 slapd[12894]: slapd starting
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001
LDAP_RES_SEARCH_ENTRY(LDAP_SYNC_ADD)
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001 inserted
UUID 31cda500-29ca-4bf8-bc53-253af0021b21
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001 be_search (0)
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001 cn=config
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001 be_add (68)
Feb  3 18:22:43 server2 slapd[12894]: dn_callback : new entry is older
than ours cn=config ours 20090203172228.809275Z#000000#000#000000, new
20090203165238.611891Z#000000#001#000000
Feb  3 18:22:43 server2 slapd[12894]: syncrepl_entry: rid=001 entry
unchanged, ignored (cn=config)
8<------------

Only four entries are in this case:
- cn=config
- cn=schema,cn=config
- olcDatabase={-1}frontend,cn=config
- olcDatabase={0}config,cn=config

How can we force syncrepl to overwrite these entries?

Any hints, or advice would be most appreciated.

Regards,
Jonathan