]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
cephfs_mirror: Fixed negative seconds
authorJos Collin <jcollin@redhat.com>
Thu, 30 May 2024 10:18:08 +0000 (15:48 +0530)
committerJos Collin <jcollin@redhat.com>
Wed, 17 Jul 2024 08:15:06 +0000 (13:45 +0530)
Fixes: https://tracker.ceph.com/issues/64927
Fixes: https://tracker.ceph.com/issues/51964
Fixes: https://tracker.ceph.com/issues/63931
Fixes: https://tracker.ceph.com/issues/63089
Signed-off-by: Jos Collin <jcollin@redhat.com>
(cherry picked from commit 96c3f8f33d789a065c7ed418679afd53faffa3d8)

src/tools/cephfs_mirror/Mirror.cc

index ecf1702e599a9cdece2cd890c2c85b59691b7a1f..397adb4f8c0572cf89344e6ad674c32ea75f1654 100644 (file)
@@ -558,9 +558,9 @@ void Mirror::update_fs_mirrors() {
     std::scoped_lock locker(m_lock);
     for (auto &[filesystem, mirror_action] : m_mirror_actions) {
       auto failed_restart = mirror_action.fs_mirror && mirror_action.fs_mirror->is_failed() &&
-       (failed_interval.count() > 0 && duration_cast<seconds>(mirror_action.fs_mirror->get_failed_ts() - clock::now()) > failed_interval);
+        (failed_interval.count() > 0 && duration_cast<seconds>(clock::now() - mirror_action.fs_mirror->get_failed_ts()).count() > failed_interval.count());
       auto blocklisted_restart = mirror_action.fs_mirror && mirror_action.fs_mirror->is_blocklisted() &&
-       (blocklist_interval.count() > 0 && duration_cast<seconds>(mirror_action.fs_mirror->get_blocklisted_ts() - clock::now()) > blocklist_interval);
+        (blocklist_interval.count() > 0 && duration_cast<seconds>(clock::now() - mirror_action.fs_mirror->get_blocklisted_ts()).count() > blocklist_interval.count());
 
       if (!mirror_action.action_in_progress && !_is_restarting(filesystem)) {
        if (failed_restart || blocklisted_restart) {