From 2c736cf70e38aa9c0d3f0b24ccc14a43944450d2 Mon Sep 17 00:00:00 2001 From: Sun Yuechi Date: Mon, 6 Jul 2026 22:44:35 +0800 Subject: [PATCH] crimson/osd/pg_recovery: fix exception handler scope in recover_missing Member access binds tighter than ?:, so the handler attached only to the recover_object() branch and exceptions from recover_object_with_throttle() escaped unhandled. Parenthesize the ternary to cover both branches. Signed-off-by: Sun Yuechi --- src/crimson/osd/pg_recovery.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 7b252e212cfb..8181a0d6f895 100644 --- a/src/crimson/osd/pg_recovery.cc +++ b/src/crimson/osd/pg_recovery.cc @@ -319,10 +319,10 @@ PGRecovery::recover_missing( } else { return recovering.wait_track_blocking( trigger, - with_throttle + (with_throttle ? recover_object_with_throttle(soid, need) : recover_object(soid, need) - .handle_exception_interruptible( + ).handle_exception_interruptible( [=, this, soid = std::move(soid)] (auto e) { on_failed_recover({ pg->get_pg_whoami() }, soid, need); return seastar::make_ready_future<>(); -- 2.47.3