From dc3745c4cff4d35d91f9565f9e2ffddf7a856488 Mon Sep 17 00:00:00 2001 From: Mikhail Alpinskiy Date: Fri, 17 Jan 2025 13:23:49 +0300 Subject: [PATCH] Fixed UDP receiver --- cmd/statshouse/statshouse.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmd/statshouse/statshouse.go b/cmd/statshouse/statshouse.go index a79b0273f..e9e832f1e 100644 --- a/cmd/statshouse/statshouse.go +++ b/cmd/statshouse/statshouse.go @@ -333,14 +333,20 @@ func mainAgent(aesPwd string, dc *pcache.DiskCache) int { if argv.coresUDP == 0 || addr == "" { return nil } - u, err := receiver.ListenUDP(network, addr, argv.bufferSizeUDP, false, sh2, mirrorUdpConn, logPackets) + reusePort := argv.coresUDP > 1 && network != "unixgram" + u, err := receiver.ListenUDP(network, addr, argv.bufferSizeUDP, reusePort, sh2, mirrorUdpConn, logPackets) if err != nil { logErr.Printf("listen %q failed: %v", network, err) return err } receiversUDP = append(receiversUDP, u) for i := 1; i < argv.coresUDP; i++ { - dup, err := u.Duplicate() + var dup *receiver.UDP + if network == "unixgram" { + dup, err = u.Duplicate() + } else { + dup, err = receiver.ListenUDP(network, addr, argv.bufferSizeUDP, true, sh2, mirrorUdpConn, logPackets) + } if err != nil { logErr.Printf("duplicate listen socket failed: %v", err) return err