Data race in middlewares
rdumont opened this issue · 1 comments
rdumont commented
When running go test -race
in one of my projects I detected a few data races in gentleman's middleware code. Just to make sure, I ran go run -race _examples/goroutines/goroutines.go
and got the output below.
I can't have a closer look right now, but I will as soon as I can. Meanwhile, if someone knows anything bout this, please let me know. Thanks :)
==================
WARNING: DATA RACE
Read at 0x00c420016f30 by goroutine 7:
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x76
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420016f30 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0xc8
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 7 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420104180 by goroutine 7:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420104180 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func2()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:30 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 7 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420016f30 by goroutine 8:
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x76
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420016f30 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0xc8
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 8 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420104180 by goroutine 9:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420104180 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func2()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:30 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 9 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420011050 by goroutine 7:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func2()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:30 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420011050 by goroutine 9:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 7 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 9 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420124090 by goroutine 8:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420124090 by goroutine 7:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runBefore()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:78 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func1()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:27 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 8 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 7 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
Path: /headers => Response: 200
==================
WARNING: DATA RACE
Read at 0x00c420104680 by goroutine 8:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func4()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:36 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420104680 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func5()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:39 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 8 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (finished) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
==================
WARNING: DATA RACE
Read at 0x00c420104680 by goroutine 9:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:138 +0x9a
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func4()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:36 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c420104680 by goroutine 6:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func5()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:39 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 9 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 6 (finished) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
Path: /get => Response: 200
==================
WARNING: DATA RACE
Read at 0x00c4200114a0 by goroutine 9:
gopkg.in/h2non/gentleman.v2/middleware.trigger()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:166 +0x1c5
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:133 +0x148
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func4()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:36 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Previous write at 0x00c4200114a0 by goroutine 8:
gopkg.in/h2non/gentleman.v2/middleware.filter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:140 +0x144
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:132 +0x99
gopkg.in/h2non/gentleman.v2/middleware.(*Layer).Run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/middleware/middleware.go:126 +0x1d4
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).run()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:142 +0x96
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).runAfter()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:95 +0x5a
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch.func5()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:39 +0x64
gopkg.in/h2non/gentleman%2ev2.(*Dispatcher).Dispatch()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/dispatcher.go:49 +0x37d
gopkg.in/h2non/gentleman%2ev2.(*Request).Do()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:271 +0x13c
gopkg.in/h2non/gentleman%2ev2.(*Request).Send()
/home/rdumont/go/src/gopkg.in/h2non/gentleman.v2/request.go:261 +0x38
main.fetch()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:40 +0xb3
Goroutine 9 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
Goroutine 8 (running) created at:
main.main()
/home/rdumont/go/src/github.com/h2non/gentleman/_examples/goroutines/goroutines.go:30 +0x15e
==================
Path: /ip => Response: 200
Path: /delay/1 => Response: 200
Done!
Found 9 data race(s)
exit status 66
h2non commented
Thanks for reporting. It should be fixed in gentleman@v2.0.2
.
Upgrade gentleman
by running:
$ go get -u gopkg.in/h2non/gentleman.v2