]> 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>
Sat, 21 Feb 2026 14:20:51 +0000 (19:50 +0530)
committerKotresh HR <khiremat@redhat.com>
Sat, 21 Feb 2026 15:34:08 +0000 (21:04 +0530)
commit2de3fcd3d6fc1f349293d2a02f1adcde3e7e0332
treec41201f99ec7b61c1df25670451ceafb062c497c
parent48fe59ab59d44bcd3b7bbaf95895d4b6c9b4bb16
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