From d0dabeec672c4d39fe32fe5006b719c9549923e5 Mon Sep 17 00:00:00 2001 From: samosvalishe Date: Mon, 18 May 2026 22:51:24 +0300 Subject: [PATCH] =?UTF-8?q?fix(bond):=20=D0=BE=D0=B3=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=87=D0=B8=D1=82=D1=8C=20pending-map=20=D0=B2=20copyBon?= =?UTF-8?q?dToTCP=20=D0=BF=D1=80=D0=BE=D1=82=D0=B8=D0=B2=20OOM?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Чанки не по порядку с постоянной потерей вызывали неограниченный рост. Лимит 1024 записи, закрытие соединения при переполнении. --- client/main.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/client/main.go b/client/main.go index 912006a..ce58621 100644 --- a/client/main.go +++ b/client/main.go @@ -1876,6 +1876,10 @@ func copyBondToTCP(ctx context.Context, connID uint64, tcpConn net.Conn, recvCh } switch f.typ { case bondFrameData: + if len(pending) >= 1024 { + log.Printf("[bond %d] pending map overflow (>1024), closing", connID) + return + } pending[f.seq] = f.data case bondFrameFIN: v := f.seq