From 9fa8ae5384fe15fa7134c26b7c9e7c946980bc5e Mon Sep 17 00:00:00 2001 From: Vitaliy Filippov Date: Sat, 26 Apr 2025 14:16:37 +0300 Subject: [PATCH] Reset OSD ping state on receiving data from it via RDMA --- src/client/msgr_rdma.cpp | 3 +++ src/client/msgr_receive.cpp | 1 + 2 files changed, 4 insertions(+) diff --git a/src/client/msgr_rdma.cpp b/src/client/msgr_rdma.cpp index 5a6682bd..47b79902 100644 --- a/src/client/msgr_rdma.cpp +++ b/src/client/msgr_rdma.cpp @@ -803,6 +803,9 @@ void osd_messenger_t::handle_rdma_events(msgr_rdma_context_t *rdma_context) } if (!is_send) { + // Reset OSD ping state - client is obviously alive + cl->ping_time_remaining = 0; + cl->idle_time_remaining = osd_idle_timeout; rc->cur_recv--; if (!handle_read_buffer(cl, rc->recv_buffers[rc->next_recv_buf].buf, wc[i].byte_len)) { diff --git a/src/client/msgr_receive.cpp b/src/client/msgr_receive.cpp index 45807921..011f4611 100644 --- a/src/client/msgr_receive.cpp +++ b/src/client/msgr_receive.cpp @@ -214,6 +214,7 @@ bool osd_messenger_t::handle_read_buffer(osd_client_t *cl, void *curbuf, int rem bool osd_messenger_t::handle_finished_read(osd_client_t *cl) { + // Reset OSD ping state cl->ping_time_remaining = 0; cl->idle_time_remaining = osd_idle_timeout; cl->recv_list.reset();