From 72e02d5164c8e60d5b06bc9b920a6a4c5ab17fbc Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Tue, 3 Dec 2024 09:58:11 +0000 Subject: [PATCH] req-resp: Fix memory leak of pending substreams Signed-off-by: Alexandru Vasile --- src/protocol/request_response/mod.rs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/protocol/request_response/mod.rs b/src/protocol/request_response/mod.rs index 38e631a1..3a64a386 100644 --- a/src/protocol/request_response/mod.rs +++ b/src/protocol/request_response/mod.rs @@ -292,6 +292,9 @@ impl RequestResponseProtocol { async fn on_connection_closed(&mut self, peer: PeerId) { tracing::debug!(target: LOG_TARGET, ?peer, protocol = %self.protocol, "connection closed"); + // Remove any pending outbound substreams for this peer. + self.pending_outbound.retain(|_, context| context.peer != peer); + let Some(context) = self.peers.remove(&peer) else { tracing::error!( target: LOG_TARGET,