From b093f5cc73458e2024caa892ec607e523ac90856 Mon Sep 17 00:00:00 2001 From: kbarukhov Date: Thu, 9 Jul 2020 10:04:01 +0300 Subject: [PATCH] fix windows + fix const --- cmd/agent/app/builder.go | 2 +- .../thriftudp/socket_buffer_linux_darwin.go | 14 +++++++++++--- .../app/servers/thriftudp/socket_buffer_windows.go | 9 ++++++--- cmd/agent/app/servers/thriftudp/transport.go | 10 ++-------- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/cmd/agent/app/builder.go b/cmd/agent/app/builder.go index 94c0cab0287..724c31bee3f 100644 --- a/cmd/agent/app/builder.go +++ b/cmd/agent/app/builder.go @@ -39,7 +39,7 @@ import ( const ( defaultQueueSize = 1000 defaultMaxPacketSize = 65000 - defaultBufferSize = 16 * 1024 * 1024 + defaultBufferSize = 4 * 1024 defaultServerWorkers = 10 jaegerModel Model = "jaeger" diff --git a/cmd/agent/app/servers/thriftudp/socket_buffer_linux_darwin.go b/cmd/agent/app/servers/thriftudp/socket_buffer_linux_darwin.go index cc41746e879..9c0181f7d54 100644 --- a/cmd/agent/app/servers/thriftudp/socket_buffer_linux_darwin.go +++ b/cmd/agent/app/servers/thriftudp/socket_buffer_linux_darwin.go @@ -2,8 +2,16 @@ package thriftudp -import "syscall" +import ( + "net" + "syscall" +) -func setSocketBuffer(fd uintptr, level, opt, value int) error { - return syscall.SetsockoptInt(int(fd), level, opt, value) +func setSocketBuffer(conn *net.UDPConn, bufferSize int) error { + file, err := conn.File() + if err != nil { + return err + } + + return syscall.SetsockoptInt(int(file.Fd()), syscall.SOL_SOCKET, syscall.SO_RCVBUF, bufferSize) } diff --git a/cmd/agent/app/servers/thriftudp/socket_buffer_windows.go b/cmd/agent/app/servers/thriftudp/socket_buffer_windows.go index 50f1a7508ad..06a45e62e47 100644 --- a/cmd/agent/app/servers/thriftudp/socket_buffer_windows.go +++ b/cmd/agent/app/servers/thriftudp/socket_buffer_windows.go @@ -2,8 +2,11 @@ package thriftudp -import "syscall" +import ( + "net" +) -func setSocketBuffer(fd uintptr, level, opt, value int) error { - return syscall.SetsockoptInt(syscall.Handle(fd), level, opt, value) +// Not supported on windows, so windows version just returns nil +func setSocketBuffer(_ *net.UDPConn, _ int) error { + return nil } diff --git a/cmd/agent/app/servers/thriftudp/transport.go b/cmd/agent/app/servers/thriftudp/transport.go index 2a1eb497179..5c9201be480 100644 --- a/cmd/agent/app/servers/thriftudp/transport.go +++ b/cmd/agent/app/servers/thriftudp/transport.go @@ -20,7 +20,6 @@ import ( "errors" "net" "sync/atomic" - "syscall" "github.com/apache/thrift/lib/go/thrift" ) @@ -28,7 +27,7 @@ import ( //MaxLength of UDP packet const ( MaxLength = 65000 - BufferSize = 16 * 1024 * 1024 + BufferSize = 4 * 1024 ) var errConnAlreadyClosed = errors.New("connection already closed") @@ -85,12 +84,7 @@ func NewTUDPServerTransport(hostPort string, bufferSize int) (*TUDPTransport, er return nil, thrift.NewTTransportException(thrift.NOT_OPEN, err.Error()) } - file, err := conn.File() - if err != nil { - return nil, err - } - - if err = setSocketBuffer(file.Fd(), syscall.SOL_SOCKET, syscall.SO_RCVBUF, bufferSize); err != nil { + if err = setSocketBuffer(conn, bufferSize); err != nil { return nil, err }