From: Samuel Just Date: Wed, 22 Jan 2025 02:41:48 +0000 (-0800) Subject: crimson/.../replicated_recovery_backend: take excl lock while pushes commit X-Git-Tag: v20.0.0~282^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F61561%2Fhead;p=ceph.git crimson/.../replicated_recovery_backend: take excl lock while pushes commit Fixes: https://tracker.ceph.com/issues/69412 Signed-off-by: Samuel Just --- diff --git a/src/crimson/osd/replicated_recovery_backend.cc b/src/crimson/osd/replicated_recovery_backend.cc index 85582e04033d..d9a4481200a2 100644 --- a/src/crimson/osd/replicated_recovery_backend.cc +++ b/src/crimson/osd/replicated_recovery_backend.cc @@ -905,6 +905,9 @@ ReplicatedRecoveryBackend::_handle_pull_response( if (complete) { pull_info.stat.num_objects_recovered++; + auto manager = pg.obc_loader.get_obc_manager( + recovery_waiter.obc); + manager.lock_excl_sync(); /* cannot already be locked */ co_await pg.get_recovery_handler()->on_local_recover( push_op.soid, get_recovering(push_op.soid).pull_info->recovery_info, false, t