From bc9d98c3fe60f2d31a034df2fb320a9024ead7e1 Mon Sep 17 00:00:00 2001 From: Paul Lorenz Date: Mon, 24 Jan 2022 17:21:43 -0500 Subject: [PATCH] Exit xgress.rx if forward fails --- router/xgress/xgress.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/router/xgress/xgress.go b/router/xgress/xgress.go index a86b49e59..9562605ed 100644 --- a/router/xgress/xgress.go +++ b/router/xgress/xgress.go @@ -523,7 +523,11 @@ func (self *Xgress) rx() { remaining -= length payloads++ - self.forwardPayload(payload) + // if the payload buffer is closed, we can't forward any more data, so might as well exit the rx loop + // The txer will still have a chance to flush any already received data + if !self.forwardPayload(payload) { + return + } payloadLogger := log.WithFields(payload.GetLoggerFields()) payloadLogger.Debugf("received [%s]", info.ByteCount(int64(n)))