]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commitdiff
tools/cephfs_mirror: Mark crawl finished
authorKotresh HR <khiremat@redhat.com>
Tue, 9 Dec 2025 10:05:08 +0000 (15:35 +0530)
committerKotresh HR <khiremat@redhat.com>
Mon, 16 Feb 2026 19:14:14 +0000 (00:44 +0530)
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 <khiremat@redhat.com>
src/tools/cephfs_mirror/PeerReplayer.cc

index 4392fe588b967a4fbaa433ef272c5f13a45a80e4..094592079a6646e17cae7efd67005dbb8f636001 100644 (file)
@@ -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 &current,