summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--geo-replication/gsyncd.conf.in6
-rw-r--r--geo-replication/syncdaemon/master.py22
2 files changed, 18 insertions, 10 deletions
diff --git a/geo-replication/gsyncd.conf.in b/geo-replication/gsyncd.conf.in
index bd04400ff69..ce4ef9b663a 100644
--- a/geo-replication/gsyncd.conf.in
+++ b/geo-replication/gsyncd.conf.in
@@ -169,6 +169,12 @@ help=Do not sync deletes in Slave
value =
help=
+[gfid-conflict-resolution]
+value = true
+validation=bool
+type=bool
+help=Disables automatic gfid conflict resolution while syncing
+
[working-dir]
value = ${gsyncd_miscdir}/${master}_${primary_slave_host}_${slavevol}/
template=true
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py
index 7985aac5439..3ca60c65a07 100644
--- a/geo-replication/syncdaemon/master.py
+++ b/geo-replication/syncdaemon/master.py
@@ -1163,16 +1163,18 @@ class GMasterChangelogMixin(GMasterCommon):
self.status.inc_value("entry", len(entries))
failures = self.slave.server.entry_ops(entries)
- count = 0
- while failures and count < self.MAX_OE_RETRIES:
- count += 1
- self.handle_entry_failures(failures, entries)
- logging.info("Retry original entries. count = %s" % count)
- failures = self.slave.server.entry_ops(entries)
- if not failures:
- logging.info("Sucessfully fixed all entry ops with gfid "
- "mismatch")
- break
+
+ if gconf.get("gfid-conflict-resolution"):
+ count = 0
+ while failures and count < self.MAX_OE_RETRIES:
+ count += 1
+ self.handle_entry_failures(failures, entries)
+ logging.info("Retry original entries. count = %s" % count)
+ failures = self.slave.server.entry_ops(entries)
+ if not failures:
+ logging.info("Sucessfully fixed all entry ops with "
+ "gfid mismatch")
+ break
self.log_failures(failures, 'gfid', gauxpfx(), 'ENTRY')
self.status.dec_value("entry", len(entries))