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

Re: (ITS#6671) multi-master replication fails to delete objects from consumer



bcolston@xtec.com wrote:
> Full_Name: Barry Colston
> Version: 2.4.23
> OS: Fedora 10
> URL: ftp://ftp.openldap.org/incoming/
> Submission from: (NULL) (209.255.208.200)

I'm looking at your test case now. One thing to note, serverIDs must all be 
non-zero in a multi-master configuration. serverID == 0 is only valid in 
single-master replication.

> When a "Refresh Present" phase is performed at a multi-master consumer, objects
> that were deleted at the provider
> while the consumer was down are not deleted from the multi-master consumer (if
> the provider is brought down and back up after the consumer is down).  This
> problem can be duplicated as follows:
> 1. Start provider
> 2. Start consumer, which is configured as a multi-master server
> 3. Add 10 records to the provider and wait until the records are replicated to
> the multi-master consumer
> 4. Stop the consumer
> 5. Delete 3 of the records that were added to the provider
> 6. Stop the provider
> 7. Start the provider
> 8. Start the consumer
> 9. After giving the consumer time to perform the refresh present phase, the 3
> records that were deleted at the provider while the consumer was down
>     are still present on the consumer and were not deleted during the refresh
> present phase
>
> Note: the consumer database must have a contextCSN attribute value present for
> itself (e.g., there should be 2 contextCSN attribute values
> present in the consumer database, one for the provider (in my configuration,
> this is serverID 000), and one value for the consumer
> (in my configuration, this is serverID 001).  An example of the contextCSN
> values follows:
>
> dn: dc=authentx
> objectClass: top
> entryUUID: 8eb6b259-ab66-49bd-b012-674c4f0fba8f
> contextCSN: 20101012154030.379053Z#000000#000#000000
> contextCSN: 20101012141508.956053Z#000000#001#000000
>
> OpenLDAP 2.4.23 is being used, along with Berkeley 4.6.21 (plus patches).
>
> Consumer log file from -d sync logging option:
> @(#) $OpenLDAP: slapd 2.4.23 (Oct 11 2010 18:00:59) $
> 	Barry@XTecVisaAdmin:/usr/src/openldap-2.4.23/servers/slapd
> slapd starting
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - SYNC_ID_SET
> do_syncrep2: rid=001 LDAP_RES_INTERMEDIATE - REFRESH_PRESENT
> do_syncrep2: rid=001
> cookie=rid=001,csn=20101012180219.072053Z#000000#000#000000
> slap_queue_csn: queing 0x1841a30 20101012180219.072053Z#000000#000#000000
> slap_graduate_commit_csn: removing 0x1841b18
> 20101012180219.072053Z#000000#000#000000
> daemon: shutdown requested and initiated.
> slapd shutdown: waiting for 1 operations/tasks to finish
> slapd stopped.
>
> Provider slapd.conf file:
> #
> include		/usr/local/etc/openldap/schema/core.schema
> include		/usr/local/etc/openldap/schema/cosine.schema
> include		/usr/local/etc/openldap/schema/inetorgperson.schema
> include		/usr/local/etc/openldap/schema/nis.schema
>
> include		/usr/local/etc/openldap/schema/authentx.schema
>
> pidfile		/usr/local/var/slapd.sync1.pid
> argsfile	/usr/local/var/slapd.sync1.args
>
> allow	bind_v2
>
> threads	32
>
> #loglevel	416
> password-hash	{SSHA}
>
> serverID 000
>
> database	bdb
> suffix		"dc=authentx"
> rootdn          "cn=xroot,dc=authentx"
> rootpw          SECRET
> directory	/authentx/db/ldap/authentx-sync1
>
> overlay syncprov
> syncprov-checkpoint 100 15
> syncprov-sessionlog 150000
>
> # checkpoint<kbytes>  <min>
> checkpoint      128     20
>
> #index for the objectclass
> index		objectClass			eq,pres
> index		cid,eid,pid			eq,pres
> index		gcoid				eq,pres
> index		sysid,certid		eq,pres
> index		imageid,bioid		eq,pres
> index		addrid,emplid		eq,pres
> index		acid,apid,aeid		eq,pres
> index		acpid,agpid			eq,pres
> index		deviceid			eq,pres
> index		qid					eq,pres
> index		scid				eq,pres
> index		docid				eq,pres
> index		procid				eq,pres
> index		prochandlerid		eq,pres
> index		ounit				eq,pres
> index		credentials			eq,pres
> index		entities			eq,pres
> index		permissions			eq,pres
> index		region				eq,pres
> index		aliasedObjectName	eq,pres
> index		proctype			eq,pres
> index		procname			eq,pres
> index		status				eq,pres
> index		upi,ediident		eq,pres
> index		xsync				eq,pres
> index		role,xrole			eq,pres
> index		eroid				eq,pres
> index		esfunction			eq,pres
> index		nippsector			eq,pres
> index		ercog,ercoop		eq,pres
> index		eropron				eq,pres
> index		xsyncid				eq,pres
> index		stockid				eq,pres
> index		stocktypecode		eq,pres
> index		lotserialin			eq,pres
> index		lotserialout		eq,pres
> index		entryCSN,entryUUID	eq
> index		incl				eq,pres
>
> cachesize		10000
> dncachesize		20000
> idlcachesize	1000
>
> sizelimit	500000
> timelimit	36000
> include		/usr/local/etc/openldap/acl.authentx
>
> database monitor
>
> Consumer slapd.conf file:
> #
> include		/usr/local/etc/openldap/schema/core.schema
> include		/usr/local/etc/openldap/schema/cosine.schema
> include		/usr/local/etc/openldap/schema/inetorgperson.schema
> include		/usr/local/etc/openldap/schema/nis.schema
>
> include		/usr/local/etc/openldap/schema/authentx.schema
>
> pidfile		/usr/local/var/slapd.sync2.pid
> argsfile	/usr/local/var/slapd.sync2.args
>
> allow	bind_v2
>
> threads	32
>
> #loglevel	416
> password-hash	{SSHA}
>
> serverID 001
>
> database	bdb
> suffix		"dc=authentx"
> rootdn          "cn=xroot,dc=authentx"
> rootpw          SECRET
> directory	/authentx/db/ldap/authentx-sync2
>
> overlay syncprov
> syncprov-checkpoint 100 15
> syncprov-sessionlog 5000
>
> # SLAVE server replication section
> syncrepl	rid=001
> 	provider=ldap://localhost:3891
> 	type=refreshAndPersist
> 	retry="30 60 60 +"
> 	searchbase="dc=authentx"
> 	scope=sub
> 	schemachecking=off
> 	bindmethod=simple
> 	binddn="cn=xroot,dc=authentx"
> 	credentials="SECRET"
>
> mirrormode on
>
> # checkpoint<kbytes>  <min>
> checkpoint      128     20
>
> #index for the objectclass
> index		objectClass			eq,pres
> index		cid,eid,pid			eq,pres
> index		gcoid				eq,pres
> index		sysid,certid		eq,pres
> index		imageid,bioid		eq,pres
> index		addrid,emplid		eq,pres
> index		acid,apid,aeid		eq,pres
> index		acpid,agpid			eq,pres
> index		deviceid			eq,pres
> index		qid					eq,pres
> index		scid				eq,pres
> index		docid				eq,pres
> index		procid				eq,pres
> index		prochandlerid		eq,pres
> index		ounit				eq,pres
> index		credentials			eq,pres
> index		entities			eq,pres
> index		permissions			eq,pres
> index		region				eq,pres
> index		aliasedObjectName	eq,pres
> index		proctype			eq,pres
> index		procname			eq,pres
> index		status				eq,pres
> index		upi,ediident		eq,pres
> index		xsync				eq,pres
> index		role,xrole			eq,pres
> index		eroid				eq,pres
> index		esfunction			eq,pres
> index		nippsector			eq,pres
> index		ercog,ercoop		eq,pres
> index		eropron				eq,pres
> index		xsyncid				eq,pres
> index		stockid				eq,pres
> index		stocktypecode		eq,pres
> index		lotserialin			eq,pres
> index		lotserialout		eq,pres
> index		entryCSN,entryUUID	eq
> index		incl				eq,pres
>
> cachesize		10000
> dncachesize		20000
> idlcachesize	1000
>
> sizelimit	100000
> timelimit	36000
> # the authentx database access control directives
> include		/usr/local/etc/openldap/acl.authentx
>
> database monitor
>
>


-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/