From c71ee14cdbcc499d0ccaa84f4714ad5f29821f40 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=83=A1=E7=8E=AE=E6=96=87?= Date: Sat, 8 Jan 2022 01:14:00 +0800 Subject: [PATCH] osd/PeeringState: fix missed `recheck_readable` from laggy MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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) --- src/osd/PeeringState.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/osd/PeeringState.cc b/src/osd/PeeringState.cc index f925d39a28f2..19abf2021e3f 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(); } } -- 2.47.3