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: testing/wip-pdonnell-testing-20250205.170831-debug~40^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=6093f9182594cf862d764517147549d94d392b2d;p=ceph-ci.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 85582e04033..d9a4481200a 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