Data race setting last failure times on connections
Opened this issue · 1 comments
anacrolix commented
==================
WARNING: DATA RACE
Write by goroutine 24:
github.com/carloscm/gossie/src/gossie.(*connectionPool).blacklist()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:339 +0x159
github.com/carloscm/gossie/src/gossie.(*connectionPool).acquire()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:312 +0x441
github.com/carloscm/gossie/src/gossie.(*connectionPool).runWithRetries()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:237 +0x59
github.com/carloscm/gossie/src/gossie.(*connectionPool).run()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:227 +0x5d
github.com/carloscm/gossie/src/gossie.(*writer).Run()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/writer.go:172 +0x112
main.func·015()
/home/mjoiner/gopath/src/code.brandscreen.net/cortex/uniques-proxy/main.go:331 +0x3cf
main.func·005()
/home/mjoiner/gopath/src/code.brandscreen.net/cortex/uniques-proxy/main.go:149 +0x79
gosched0()
/home/mjoiner/src/go/src/pkg/runtime/proc.c:1231 +0x9f
Previous read by goroutine 21:
github.com/carloscm/gossie/src/gossie.(*connectionPool).randomNode()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:280 +0x104
github.com/carloscm/gossie/src/gossie.(*connectionPool).acquire()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:305 +0x207
github.com/carloscm/gossie/src/gossie.(*connectionPool).runWithRetries()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:237 +0x59
github.com/carloscm/gossie/src/gossie.(*connectionPool).run()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/connection.go:227 +0x5d
github.com/carloscm/gossie/src/gossie.(*writer).Run()
/home/mjoiner/gopath/src/github.com/carloscm/gossie/src/gossie/writer.go:172 +0x112
main.func·015()
/home/mjoiner/gopath/src/code.brandscreen.net/cortex/uniques-proxy/main.go:331 +0x3cf
main.func·005()
/home/mjoiner/gopath/src/code.brandscreen.net/cortex/uniques-proxy/main.go:149 +0x79
gosched0()
/home/mjoiner/src/go/src/pkg/runtime/proc.c:1231 +0x9f
carloscm commented
This appears to be a race in modifying the node blacklist. It should be easy to fix by adding a mutex to access it. I am not working anymore in Gossie so any future maintainers of the library should fix this bug.