From c87278aba8985447a4a1746e66b4f785a602f8ab Mon Sep 17 00:00:00 2001 From: Tim Burke Date: Fri, 30 Sep 2022 08:42:39 -0700 Subject: [PATCH] object-replicator: Count sync failures in update_deleted Previously, we would track the failure in the failure_devs_info set, but not actually use it to update failure stats unless some other exception occurred. Change-Id: Ib28196191275022fcb74d2365910240cc7c61c3a --- swift/obj/replicator.py | 2 +- test/unit/obj/test_replicator.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/swift/obj/replicator.py b/swift/obj/replicator.py index 45d8a3f85b..8b5100aae8 100644 --- a/swift/obj/replicator.py +++ b/swift/obj/replicator.py @@ -592,8 +592,8 @@ class ObjectReplicator(Daemon): self.logger.increment('partition.lock-failure.count') except (Exception, Timeout): self.logger.exception("Error syncing handoff partition") - stats.add_failure_stats(failure_devs_info) finally: + stats.add_failure_stats(failure_devs_info) target_devs_info = set([(target_dev['replication_ip'], target_dev['device']) for target_dev in job['nodes']]) diff --git a/test/unit/obj/test_replicator.py b/test/unit/obj/test_replicator.py index 53eac6db2f..25fe042757 100644 --- a/test/unit/obj/test_replicator.py +++ b/test/unit/obj/test_replicator.py @@ -1004,6 +1004,7 @@ class TestObjectReplicator(unittest.TestCase): # stopped after handoffs! self.assertEqual(1, self.replicator.handoffs_remaining) self.assertEqual(8, self.replicator.job_count) + self.assertEqual(self.replicator.total_stats.failure, 1) # in addition to the two update_deleted jobs as many as "concurrency" # jobs may have been spawned into the pool before the failed # update_deleted job incremented handoffs_remaining and caused the