Re: [389-users] Data inconsitency during replication

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



----- Original Message -----
> 
> 
> 
> Hi Rich,
> 
> 
> 
> One correction in step-4 “recreation of “cn=replica” entry for the
> suffix. As per the example given below, suffix is “o=USA”
> 
> 
> 
> - Recreate the “cn=replica” entry for the suffix as below .
> 
> dn: cn=replica,cn=o=USA,cn=mapping tree,cn=config
> 
> changetype: add
> 
> objectClass: nsds5replica
> 
> objectClass: top
> 
> nsDS5ReplicaRoot: o=USA
> 
> nsDS5ReplicaType: 3
> 
> nsDS5Flags: 1
> 
> nsDS5ReplicaId: 10 -- à Please assign the same “nsDS5ReplicaId value
> what master was having. In my case, Original master replica ID was
> 10.
> 
> nsds5ReplicaPurgeDelay: 1
> 
> nsds5ReplicaTombstonePurgeInterval: -1
> 
> cn: replica
> 
> 
> 
> Regards,
> 
> Jyoti
> 
> 
> 
> 
> 
> From: Das, Jyoti Ranjan (STSD)
> Sent: Monday, October 31, 2011 2:38 PM
> To: 'Rich Megginson'; General discussion list for the 389 Directory
> server project.
> Subject: RE: [389-users] Data inconsitency during replication
> 
> 
> 
> Hi Rich,
> 
> 
> 
> Thanks a lot for your response. Please find the sample reproducer
> details below. I am not sure about how to log a bug. I will explore
> and do it.

https://bugzilla.redhat.com/enter_bug.cgi?product=389

Use category Replication - General

> 
> 
> 
> 
> 
> Reproducer:
> 
> 
> 
> 
> 
> Step-1:
> 
> 
> 
> Have a topology like Master replicating to Slave and Slave
> replication to consumer.
> 
> 
> 
> Master -> Slave-> Consumer.
> 
> 
> 
> Step-2:
> 
> Make sure that all are on sync at this time. Let’s take an example
> all are the on sync up to CSN5 (5 records are added to master from
> CSN1 to CSN5).
> 
> 
> 
> Step-3:
> 
> 
> 
> Delete the replication agreement from Master to Slave and also from
> Slave to consumer.
> 
> 
> 
> Step-4:
> 
> 
> 
> Promote the Slave to master. Promotion steps are given below.
> 
> 
> 
> - Delete Supplier DN (cn=suppdn,cn=config) from Slave
> 
> - Delete “cn=replica” entry for the suffix “o=USA” using ldapmodify.
> As a result, it will delete the changelog file.
> 
> Ex: dn: cn=replica,cn=o=USA,cn=mapping tree,cn=config
> 
> changetype: delete
> 
> - Modify the cn=o=USA ,cn=mapping tree,cn=config entry as below
> 
> EX: dn: cn=o=USA,cn=mapping tree,cn=config
> 
> changetype: modify
> 
> replace: nsslapd-state
> 
> nsslapd-state: backend
> 
> 
> 
> dn: cn=o=USA,cn=mapping tree,cn=config
> 
> changetype: modify
> 
> delete: nsslapd-referral
> 
> - Recreate the “cn=replica” entry for the suffix as below .
> 
> dn: cn=replica,cn=o=SWIFT,cn=mapping tree,cn=config
> 
> changetype: add
> 
> objectClass: nsds5replica
> 
> objectClass: top
> 
> nsDS5ReplicaRoot: o=SWIFT
> 
> nsDS5ReplicaType: 3
> 
> nsDS5Flags: 1
> 
> nsDS5ReplicaId: 10 -- à Please assign the same “nsDS5ReplicaId value
> what master was having. In my case, Original master replica ID was
> 10.
> 
> nsds5ReplicaPurgeDelay: 1
> 
> nsds5ReplicaTombstonePurgeInterval: -1
> 
> cn: replica
> 
> - Restart slapd process. Now Slave become Master.
> 
> 
> 
> Is there anything am I missing during promotion operation or it’s not
> the right way to do the promotion operation ?
> 
> 
> 
> Step -5:
> 
> 
> 
> Add the replication agreement between Slave(newly promoted Master)
> and Consumer . At this time both Slave and consumer are on sync up
> to CSN5. During agreement creation please do not initialize the
> consumer .
> 
> 
> 
> Slave(newly promoted as master) - > consumer.
> 
> 
> 
> Step-6:
> 
> 
> 
> Add another 5 more entries to Slave which was promoted above as
> Master. Let’s assume CSN numbers for these 5 entries are from CSN6
> to CSN10.
> 
> 
> 
> Step-7:
> 
> 
> 
> Now, you will see, among the last 5 entries only last few will gets
> replicated without halting the replication.
> 
> 
> 
> 
> 
> Regards,
> 
> Jyoti
> 
> 
> 
> 
> 
> 
> 
> 
> 
> From: Rich Megginson [mailto:rmeggins@xxxxxxxxxx]
> Sent: Friday, October 28, 2011 10:54 PM
> To: General discussion list for the 389 Directory server project.
> Cc: Das, Jyoti Ranjan (STSD)
> Subject: Re: [389-users] Data inconsitency during replication
> 
> 
> 
> On 10/20/2011 12:45 AM, Das, Jyoti Ranjan (STSD) wrote:
> 
> Hi,
> 
> 
> 
> I am new to 389 directory server. Could you please help me in the
> below mentioned query?
> 
> Thank you very much in advance.
> 
> 
> 
> Problem statement:
> 
> 
> 
> Data loss during the replication between Supplier and consumer when
> master changelog db file is being deleted due to some reason ,
> consumer is imported with some stale data and consumer doesn’t want
> initialization during the new replication agreement. The test
> scenario is given below.
> 
> 
> 
> Test scenario:
> 
> Steps:
> 
> Topology
> 
> Supplier -----------Replication agreement-----------------> Hub
> 
> Both replicas are in sync at this time as mentioned below.
> 
> Let’s take this sample example: Five entries has been added starting
> from CSN1 to CSN5
> 
> Take a db2ldif with “-r” option from the Hub replica.
> 
> Add another 5 entries in the supplier. Let’s take their CSN numbers
> are starting from CSN6 to CSN10
> 
> Delete the replication agreements
> 
> Before or after CSN6 to CSN10 have been replicated to the Hub?
> 
> Delete the master changelog db file from the changelogdb directory.
> 
> Supplier or Hub?
> 
> Add another 5 entries in the supplier. Let’s take their CSN numbers
> are staring from CSN11 to CSN15
> 
> Import the ldif file taken in Step-2 in the Hub replica( it’s a
> initialization of consumer with the stale data)
> 
> Create the replication agreement between master and hub with the “do
> not initialize” option.
> 
> Now we will see the data loss starting from CSN6 to CSN14. Only entry
> with CSN15 will be replicated to the consumer and also will continue
> further with successful replication
> 
> 
> 
> 
> 
> Questions:
> 
> Is this a correct approach in this scenario to continue with
> replication even if there are data losses instead of halting the
> replication?
> 
> From the code analysis:
> 
> File: “ ldapserver/ldap/servers/plugins/replication/cl5_api.c”
> 
> If the requested CSN number is now found in the changelog db file and
> also not there in the purge list, it makes the following assumption
> and continues with replication
> 
> 
> 
> /* there is a special case which can occur just after migration - in
> this case,
> 
> the consumer RUV will contain the last state of the supplier before
> migration,
> 
> but the supplier will have an empty changelog, or the supplier
> changelog will
> 
> not contain any entries within the consumer min and max CSN - also,
> since
> 
> the purge RUV contains no CSNs, the changelog has never been purged
> 
> ASSUMPTIONS - it is assumed that the supplier had no pending changes
> to send
> 
> to any consumers; that is, we can assume that no changes were lost
> due to
> 
> either changelog purging or database reload - bug# 603061 -
> richm@xxxxxxxxxxxx */
> 
> 
> 
> Is it a correct approach in this scenario to halt the replication
> with a fatal error message in the error log file?
> 
> Probably, but then this code would have to be a lot smarter to figure
> out that the problem is due to stale data being imported into the
> consumer. Please file a bug with exact steps to reproduce this
> problem.
> 
> 
> 
> 
> 
> Regards,
> 
> Jyoti
> 
> 
> 
> -- 389 users mailing list 389-users@xxxxxxxxxxxxxxxxxxxxxxx
> https://admin.fedoraproject.org/mailman/listinfo/389-users
> 
> 
--
389 users mailing list
389-users@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/389-users



[Index of Archives]     [Fedora User Discussion]     [Older Fedora Users]     [Fedora Announce]     [Fedora Package Announce]     [EPEL Announce]     [Fedora News]     [Fedora Cloud]     [Fedora Advisory Board]     [Fedora Education]     [Fedora Security]     [Fedora Scitech]     [Fedora Robotics]     [Fedora Maintainers]     [Fedora Infrastructure]     [Fedora Websites]     [Anaconda Devel]     [Fedora Devel Java]     [Fedora Legacy]     [Fedora Desktop]     [Fedora Fonts]     [ATA RAID]     [Fedora Marketing]     [Fedora Management Tools]     [Fedora Mentors]     [Fedora Package Review]     [Fedora R Devel]     [Fedora PHP Devel]     [Kickstart]     [Fedora Music]     [Fedora Packaging]     [Centos]     [Fedora SELinux]     [Fedora Legal]     [Fedora Kernel]     [Fedora QA]     [Fedora Triage]     [Fedora OCaml]     [Coolkey]     [Virtualization Tools]     [ET Management Tools]     [Yum Users]     [Tux]     [Yosemite News]     [Yosemite Photos]     [Linux Apps]     [Maemo Users]     [Gnome Users]     [KDE Users]     [Fedora Tools]     [Fedora Art]     [Fedora Docs]     [Maemo Users]     [Asterisk PBX]     [Fedora Sparc]     [Fedora Universal Network Connector]     [Fedora ARM]

  Powered by Linux