From: Jos Collin Date: Tue, 12 Mar 2024 06:07:18 +0000 (+0530) Subject: cephfs_mirror: increment sync_failures when sync_perms() and sync_snaps() fails X-Git-Tag: testing/wip-lusov-testing-20240613.155007-reef~4^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=dd8134f251fab4e5e7ae368babd6f01435e07e6c;p=ceph-ci.git cephfs_mirror: increment sync_failures when sync_perms() and sync_snaps() fails When sync_perms() fails _inc_failed_count() is called for incrementing the failed count. So it's better reflect that in the metrics too. Does the same for sync_snaps() too. Fixes: https://tracker.ceph.com/issues/65345 Signed-off-by: Jos Collin (cherry picked from commit 57ec7c76344253322dd8013f6ceb6b59bbd96113) --- diff --git a/src/tools/cephfs_mirror/PeerReplayer.cc b/src/tools/cephfs_mirror/PeerReplayer.cc index 6f3fb724a65..9024e53c0a0 100644 --- a/src/tools/cephfs_mirror/PeerReplayer.cc +++ b/src/tools/cephfs_mirror/PeerReplayer.cc @@ -1532,7 +1532,7 @@ int PeerReplayer::do_sync_snaps(const std::string &dir_root) { return 0; } -void PeerReplayer::sync_snaps(const std::string &dir_root, +int PeerReplayer::sync_snaps(const std::string &dir_root, std::unique_lock &locker) { dout(20) << ": dir_root=" << dir_root << dendl; locker.unlock(); @@ -1543,12 +1543,10 @@ void PeerReplayer::sync_snaps(const std::string &dir_root, locker.lock(); if (r < 0) { _inc_failed_count(dir_root); - if (m_perf_counters) { - m_perf_counters->inc(l_cephfs_mirror_peer_replayer_snap_sync_failures); - } } else { _reset_failed_count(dir_root); } + return r; } void PeerReplayer::run(SnapshotReplayerThread *replayer) { @@ -1585,13 +1583,19 @@ void PeerReplayer::run(SnapshotReplayerThread *replayer) { dout(5) << ": picked dir_root=" << *dir_root << dendl; int r = register_directory(*dir_root, replayer); if (r == 0) { - r = sync_perms(*dir_root); - if (r < 0) { - _inc_failed_count(*dir_root); - } else { - sync_snaps(*dir_root, locker); - } - unregister_directory(*dir_root); + r = sync_perms(*dir_root); + if (r == 0) { + r = sync_snaps(*dir_root, locker); + if (r < 0 && m_perf_counters) { + m_perf_counters->inc(l_cephfs_mirror_peer_replayer_snap_sync_failures); + } + } else { + _inc_failed_count(*dir_root); + if (m_perf_counters) { + m_perf_counters->inc(l_cephfs_mirror_peer_replayer_snap_sync_failures); + } + } + unregister_directory(*dir_root); } } diff --git a/src/tools/cephfs_mirror/PeerReplayer.h b/src/tools/cephfs_mirror/PeerReplayer.h index 63e1bd9e8a7..3833ecdc87b 100644 --- a/src/tools/cephfs_mirror/PeerReplayer.h +++ b/src/tools/cephfs_mirror/PeerReplayer.h @@ -279,7 +279,7 @@ private: int try_lock_directory(const std::string &dir_root, SnapshotReplayerThread *replayer, DirRegistry *registry); void unlock_directory(const std::string &dir_root, const DirRegistry ®istry); - void sync_snaps(const std::string &dir_root, std::unique_lock &locker); + int sync_snaps(const std::string &dir_root, std::unique_lock &locker); int build_snap_map(const std::string &dir_root, std::map *snap_map,