From: 胡玮文 Date: Fri, 7 Jan 2022 17:14:00 +0000 (+0800) Subject: osd/PeeringState: fix missed `recheck_readable` from laggy X-Git-Tag: v17.2.7~337^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=aaf7071db061bd1c66de4a19e2ff13f733d9a704;p=ceph.git osd/PeeringState: fix missed `recheck_readable` from laggy Previously, the first `pg_lease_ack_t` after becoming laggy would not trigger `recheck_readable`. However, every other ack would trigger it. The logic is inverted, causing unnecessarily long laggy PG state. Fixes: 3bb8a7210a6 (osd: requeue ops when PG is no longer laggy) Fixes: https://tracker.ceph.com/issues/53806 Signed-off-by: 胡玮文 (cherry picked from commit caeca396e8b149cfa09ed99eda4f7a7186b005b4) --- diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index 68b8d2225995..8ad0a08e9b4c 100644 --- a/src/osd/PeeringState.cc +++ b/src/osd/PeeringState.cc @@ -1220,7 +1220,7 @@ void PeeringState::proc_lease_ack(int from, const pg_lease_ack_t& a) if (was_min) { auto old_ru = readable_until; recalc_readable_until(); - if (now < old_ru) { + if (now >= old_ru) { pl->recheck_readable(); } }