From 0f9a319e589fa87a97cfacf7a0b461fddb05b88c Mon Sep 17 00:00:00 2001 From: Sergey Cherepanov Date: Thu, 27 Mar 2025 14:16:10 +0100 Subject: [PATCH] peer: fix closed connection release --- net/peer/peer.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/peer/peer.go b/net/peer/peer.go index ea579a3c..916dc713 100644 --- a/net/peer/peer.go +++ b/net/peer/peer.go @@ -159,10 +159,10 @@ func (p *peer) AcquireDrpcConn(ctx context.Context) (drpc.Conn, error) { } func (p *peer) ReleaseDrpcConn(conn drpc.Conn) { - // do nothing if it's closed connection + var closed bool select { case <-conn.Closed(): - return + closed = true default: } @@ -183,7 +183,9 @@ func (p *peer) ReleaseDrpcConn(conn drpc.Conn) { if _, ok = p.active[sc]; ok { delete(p.active, sc) } - p.inactive = append(p.inactive, sc) + if !closed { + p.inactive = append(p.inactive, sc) + } return }