From 87ac981b60101a2450d4ea4b3eefd062d691bd1b Mon Sep 17 00:00:00 2001 From: ngjaying Date: Fri, 22 Nov 2024 11:45:11 +0800 Subject: [PATCH] fix(neuron): avoid flooding logs when disconnect (#3393) Signed-off-by: Jiyong Huang --- internal/io/neuron/source.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/internal/io/neuron/source.go b/internal/io/neuron/source.go index 82ff50528a..a23479416b 100644 --- a/internal/io/neuron/source.go +++ b/internal/io/neuron/source.go @@ -94,16 +94,21 @@ func (s *source) Subscribe(ctx api.StreamContext, ingest api.BytesIngest, ingest ctx.GetLogger().Infof("neuron source receiving loop started") go func() { err := infra.SafeRun(func() error { + connected := true for { // no receiving deadline, will wait until the socket closed if msg, err := s.cli.Recv(); err == nil { + connected = true ctx.GetLogger().Debugf("nng received message %s", string(msg)) rawData, meta := extractTraceMeta(ctx, msg) ingest(ctx, rawData, meta, timex.GetNow()) } else if err == mangos.ErrClosed { - ctx.GetLogger().Infof("neuron connection closed, retry after 1 second") - ingestErr(ctx, errors.New("neuron connection closed")) - time.Sleep(1 * time.Second) + if connected { + ctx.GetLogger().Infof("neuron connection closed, retry after 1 second") + ingestErr(ctx, errors.New("neuron connection closed")) + time.Sleep(1 * time.Second) + connected = false + } continue } }