diff options
Diffstat (limited to 'geo-replication/syncdaemon')
-rw-r--r-- | geo-replication/syncdaemon/master.py | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/geo-replication/syncdaemon/master.py b/geo-replication/syncdaemon/master.py index aedfc232b07..e05dc376662 100644 --- a/geo-replication/syncdaemon/master.py +++ b/geo-replication/syncdaemon/master.py @@ -895,8 +895,8 @@ class GMasterChangelogMixin(GMasterCommon): # Increment counters for Status self.status.inc_value("entry", len(entries)) - self.files_in_batch = len(datas) - self.status.inc_value("data", self.files_in_batch) + self.files_in_batch += len(datas) + self.status.inc_value("data", len(datas)) # sync namespace if entries: @@ -930,6 +930,7 @@ class GMasterChangelogMixin(GMasterCommon): tries = 0 retry = False self.unlinked_gfids = [] + self.files_in_batch = 0 while True: self.skipped_gfid_list = [] @@ -983,6 +984,8 @@ class GMasterChangelogMixin(GMasterCommon): self.status.set_last_synced(xtl, checkpoint_time) map(self.changelog_done_func, changes) self.archive_and_purge_changelogs(changes) + + # Reset Data counter after sync self.status.dec_value("data", self.files_in_batch) self.files_in_batch = 0 break @@ -999,7 +1002,10 @@ class GMasterChangelogMixin(GMasterCommon): logging.warn('SKIPPED GFID = %s' % ','.join(self.skipped_gfid_list)) + # Reset data counter on failure + self.status.dec_value("data", self.files_in_batch) self.files_in_batch = 0 + if done: xtl = (int(change.split('.')[-1]) - 1, 0) self.upd_stime(xtl) @@ -1022,6 +1028,10 @@ class GMasterChangelogMixin(GMasterCommon): # TODO: remove entry retries when it's gets fixed. logging.warn('incomplete sync, retrying changelogs: %s' % ' '.join(map(os.path.basename, changes))) + + # Reset the Data counter before Retry + self.status.dec_value("data", self.files_in_batch) + self.files_in_batch = 0 time.sleep(0.5) def upd_stime(self, stime, path=None): |