From 52f4ad03f399a95b08ffc871adedc2fc9bb5160b Mon Sep 17 00:00:00 2001 From: Leonid Bugaev Date: Wed, 7 Feb 2018 20:28:24 +0200 Subject: [PATCH] Ensure that tcp-output do not loose messages when reconnecting --- Dockerfile.dev | 2 +- output_tcp.go | 8 +++++--- vendor/vendor.json | 3 +-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Dockerfile.dev b/Dockerfile.dev index fe2b8a0..076fb16 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -11,7 +11,7 @@ RUN echo oracle-java7-installer shared/accepted-oracle-license-v1-1 select true RUN apt-get install oracle-java8-installer -y RUN apt-get install flex bison -y -RUN wget http://www.tcpdump.org/release/libpcap-1.7.4.tar.gz && tar xzf libpcap-1.7.4.tar.gz && cd libpcap-1.7.4 && ./configure && make install +RUN wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz && tar xzf libpcap-1.8.1.tar.gz && cd libpcap-1.8.1 && ./configure && make install RUN go get github.com/google/gopacket RUN go get -u github.com/golang/lint/golint diff --git a/output_tcp.go b/output_tcp.go index 4c5b9ef..916ba7d 100644 --- a/output_tcp.go +++ b/output_tcp.go @@ -32,7 +32,7 @@ func NewTCPOutput(address string, config *TCPOutputConfig) io.Writer { o.address = address o.config = config - o.buf = make(chan []byte, 100) + o.buf = make(chan []byte, 1000) if Settings.outputTCPStats { o.bufStats = NewGorStat("output_tcp") } @@ -66,11 +66,13 @@ func (o *TCPOutput) worker() { defer conn.Close() for { - conn.Write(<-o.buf) + data := <-o.buf + conn.Write(data) _, err := conn.Write([]byte(payloadSeparator)) if err != nil { - log.Println("Lost connection with aggregator instance, reconnecting") + log.Println("INFO: TCP output connection closed, reconnecting") + o.buf <- data go o.worker() break } diff --git a/vendor/vendor.json b/vendor/vendor.json index 6da1d5c..a6319c5 100644 --- a/vendor/vendor.json +++ b/vendor/vendor.json @@ -46,7 +46,6 @@ }, { "checksumSHA1": "U2Ydh7vEAKlN0Wq22n1JpefF7uY=", - "origin": "github.com/buger/goreplay/vendor/github.com/google/gopacket", "path": "github.com/google/gopacket", "revision": "b09bf408520f7646e29b7033d9adb00ed779a1c4", "revisionTime": "2016-05-12T15:06:07Z" @@ -94,5 +93,5 @@ "revisionTime": "2017-02-01T04:15:14Z" } ], - "rootPath": "github.com/buger/gor" + "rootPath": "github.com/buger/goreplay" }