haproxy input: fix potential race condition

This commit is contained in:
Cameron Sparr 2016-06-02 11:22:07 +01:00
parent 8173338f8a
commit 675457873a
1 changed files with 7 additions and 8 deletions

View File

@ -6,6 +6,7 @@ import (
"github.com/influxdata/telegraf" "github.com/influxdata/telegraf"
"github.com/influxdata/telegraf/plugins/inputs" "github.com/influxdata/telegraf/plugins/inputs"
"io" "io"
"log"
"net" "net"
"net/http" "net/http"
"net/url" "net/url"
@ -113,20 +114,18 @@ func (g *haproxy) Gather(acc telegraf.Accumulator) error {
} }
var wg sync.WaitGroup var wg sync.WaitGroup
for _, server := range g.Servers {
var outerr error
for _, serv := range g.Servers {
wg.Add(1) wg.Add(1)
go func(serv string) { go func(serv string) {
defer wg.Done() defer wg.Done()
outerr = g.gatherServer(serv, acc) if err := g.gatherServer(serv, acc); err != nil {
}(serv) log.Printf("HAProxy error gathering server: %s, %s", serv, err)
}
}(server)
} }
wg.Wait() wg.Wait()
return nil
return outerr
} }
func (g *haproxy) gatherServerSocket(addr string, acc telegraf.Accumulator) error { func (g *haproxy) gatherServerSocket(addr string, acc telegraf.Accumulator) error {