From 60a26371f42f5c0a9ce1ffb2b85b739d80085f2a Mon Sep 17 00:00:00 2001 From: Josh Bleecher Snyder Date: Tue, 27 Apr 2021 10:15:15 -0700 Subject: [PATCH] device: log all errors received by RoutineReceiveIncoming When debugging, it's useful to know why a receive func exited. We were already logging that, but only in the "death spiral" case. Move the logging up, to capture it always. Reduce the verbosity, since it is not an error case any more. Put the receive func name in the log line. Signed-off-by: Josh Bleecher Snyder --- device/receive.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/device/receive.go b/device/receive.go index 9af0e18..13f62eb 100644 --- a/device/receive.go +++ b/device/receive.go @@ -94,6 +94,7 @@ func (device *Device) RoutineReceiveIncoming(recv conn.ReceiveFunc) { size, endpoint, err = recv(buffer[:]) if err != nil { + device.log.Verbosef("Routine: receive incoming %s - failed to receive packet: %v", recvName, err) device.PutMessageBuffer(buffer) if errors.Is(err, net.ErrClosed) { return @@ -101,7 +102,6 @@ func (device *Device) RoutineReceiveIncoming(recv conn.ReceiveFunc) { if neterr, ok := err.(net.Error); ok && !neterr.Temporary() { return } - device.log.Errorf("Failed to receive packet: %v", err) if deathSpiral < 10 { deathSpiral++ time.Sleep(time.Second / 3)