From: Kotresh HR Date: Tue, 9 Dec 2025 10:05:08 +0000 (+0530) Subject: tools/cephfs_mirror: Mark crawl finished X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=da5bf9f4ce2e6a3a9600087085d20cba5bc38ed9;p=ceph-ci.git tools/cephfs_mirror: Mark crawl finished After entry operations are synced and stack is empty, mark the crawl as finished so the data sync threads' wait logic works correctly and doesn't indefinitely wait. Fixes: https://tracker.ceph.com/issues/73452 Signed-off-by: Kotresh HR --- diff --git a/src/tools/cephfs_mirror/PeerReplayer.cc b/src/tools/cephfs_mirror/PeerReplayer.cc index 4392fe588b9..094592079a6 100644 --- a/src/tools/cephfs_mirror/PeerReplayer.cc +++ b/src/tools/cephfs_mirror/PeerReplayer.cc @@ -1655,6 +1655,9 @@ void PeerReplayer::SnapDiffSync::finish_sync() { m_sync_stack.pop(); } + + // Crawl and entry operations are done syncing here. So mark crawl finished here + mark_crawl_finished(); } PeerReplayer::RemoteSync::RemoteSync(MountRef local, MountRef remote, FHandles *fh, @@ -1801,6 +1804,9 @@ void PeerReplayer::RemoteSync::finish_sync() { m_sync_stack.pop(); } + + // Crawl and entry operations are done syncing here. So mark stack finished here + mark_crawl_finished(); } int PeerReplayer::do_synchronize(const std::string &dir_root, const Snapshot ¤t,