From: Matthew N. Heler Date: Tue, 23 Jun 2026 15:37:16 +0000 (-0500) Subject: rgw/http: skip pause/resume when the request already finished X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=899457aeca0c3fffbe72fedeab9c5118bb0f670d;p=ceph.git rgw/http: skip pause/resume when the request already finished req_data->mgr is null once the request finishes. Check it in _set_write_paused and _set_read_paused before calling set_request_state, otherwise a late streaming write segfaults. Signed-off-by: Matthew N. Heler --- diff --git a/src/rgw/rgw_http_client.cc b/src/rgw/rgw_http_client.cc index e415358607b..52643417801 100644 --- a/src/rgw/rgw_http_client.cc +++ b/src/rgw/rgw_http_client.cc @@ -482,6 +482,10 @@ void RGWHTTPClient::_set_write_paused(bool pause) ceph_assert(ceph_mutex_is_locked(req_data->lock)); RGWHTTPManager *mgr = req_data->mgr; + if (!mgr) { + // request already finished; nothing to pause/resume + return; + } if (pause == req_data->write_paused) { return; } @@ -497,6 +501,10 @@ void RGWHTTPClient::_set_read_paused(bool pause) ceph_assert(ceph_mutex_is_locked(req_data->lock)); RGWHTTPManager *mgr = req_data->mgr; + if (!mgr) { + // request already finished; nothing to pause/resume + return; + } if (pause == req_data->read_paused) { return; }