From 8c4c22c15b24943eeee5eb8a032f884ff67b76d0 Mon Sep 17 00:00:00 2001 From: Samuel Just Date: Wed, 3 Apr 2024 18:55:52 -0700 Subject: [PATCH] crimson/.../client_request: bounce replica read if missing Fixes: https://tracker.ceph.com/issues/65299 Signed-off-by: Samuel Just --- src/crimson/osd/osd_operations/client_request.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/crimson/osd/osd_operations/client_request.cc b/src/crimson/osd/osd_operations/client_request.cc index bd1a2aa439a1..fceb98f37c98 100644 --- a/src/crimson/osd/osd_operations/client_request.cc +++ b/src/crimson/osd/osd_operations/client_request.cc @@ -190,6 +190,11 @@ ClientRequest::interruptible_future<> ClientRequest::with_pg_process_interruptib DEBUGDPP("{}.{}: dropping misdirected op", pg, *this, this_instance_id); co_return; + } else if (pg.is_unreadable_object(m->get_hobj())) { + DEBUGDPP("{}.{}: {} missing on replica, bouncing to primary", + pg, *this, this_instance_id, m->get_hobj()); + co_await reply_op_error(pgref, -EAGAIN); + co_return; } else if (!pg.get_peering_state().can_serve_replica_read(m->get_hobj())) { DEBUGDPP("{}.{}: unstable write on replica, bouncing to primary", pg, *this, this_instance_id); -- 2.47.3