From: Sun Yuechi Date: Mon, 6 Jul 2026 14:44:35 +0000 (+0800) Subject: crimson/osd/pg_recovery: fix exception handler scope in recover_missing X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=2c736cf70e38aa9c0d3f0b24ccc14a43944450d2;p=ceph.git 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 --- diff --git a/src/crimson/osd/pg_recovery.cc b/src/crimson/osd/pg_recovery.cc index 7b252e212cf..8181a0d6f89 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<>();