]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph-ci.git/commit
tools/cephfs_mirror: Handle shutdown/blocklist at syncm_q wait
authorKotresh HR <khiremat@redhat.com>
Sun, 15 Feb 2026 08:30:07 +0000 (14:00 +0530)
committerKotresh HR <khiremat@redhat.com>
Mon, 16 Feb 2026 19:14:15 +0000 (00:44 +0530)
commit5b2aab8178d09d249f2d0f554f751cdb376c08d8
treed75d4ebdbe45a7e185339b1a5abda4fd3e6401b5
parent2e8969f1b53e28bf7985021c5716aec77401d998
tools/cephfs_mirror: Handle shutdown/blocklist at syncm_q wait

1. Convert smq_cv.wait to timed wait as blocklist doesn't have
   predicate to evaluate. Evaluate is_shutdown() as predicate.
   When either of the two is true, set corresponding error and
   backoff flag in all the syncm objects. The last thread data
   sync thread would wake up all the crawler threads. This is
   necessary to wake up the crawler threads whose data queue
   is not picked by any datasync threads.
2. In shutdown(), change the order of join, join datasync threads
   first. The idea is kill datasync threads first before crawler
   threads as datasync threads are extension of crawler threads
   and othewise might cause issues. Also wake up smq_cv wait for
   shutdown.

Fixes: https://tracker.ceph.com/issues/73452
Signed-off-by: Kotresh HR <khiremat@redhat.com>
src/tools/cephfs_mirror/PeerReplayer.cc
src/tools/cephfs_mirror/PeerReplayer.h