Skip to content

Commit 9360d69

Browse files
authored
Merge pull request #1394 from circleci/dm/fix-metrics-race
Fix data race in metrics test
2 parents 95b1b66 + 80c64d4 commit 9360d69

File tree

1 file changed

+16
-14
lines changed

1 file changed

+16
-14
lines changed

httpclient/metrics/metrics_test.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,6 @@ func TestMetrics(t *testing.T) {
3636
ctx, done := setupMetrics(t, ctx)
3737
tracer := New(ctx)
3838

39-
sys := system.New()
40-
sys.AddGauges(tracer)
41-
go func() {
42-
err := sys.Run(ctx, time.Millisecond)
43-
assert.Assert(t, err)
44-
}()
45-
4639
concurrentRequests := 100
4740
maxConnections := 90 // close to max concurrency, but we should see some waiting
4841
cl := httpclient.New(httpclient.Config{
@@ -52,6 +45,14 @@ func TestMetrics(t *testing.T) {
5245
Tracer: tracer,
5346
})
5447

48+
// Start sys.Run after httpclient.New so Wrap() completes before Gauges() polling begins.
49+
sys := system.New()
50+
sys.AddGauges(tracer)
51+
go func() {
52+
err := sys.Run(ctx, time.Millisecond)
53+
assert.Assert(t, err)
54+
}()
55+
5556
r := httpclient.NewRequest("GET", "/test/%s",
5657
httpclient.RouteParams("foo"),
5758
httpclient.Timeout(time.Second),
@@ -128,13 +129,6 @@ func TestMetrics(t *testing.T) {
128129
ctx, done := setupMetrics(t, ctx)
129130
tracer := New(ctx)
130131

131-
sys := system.New()
132-
sys.AddGauges(tracer)
133-
go func() {
134-
err := sys.Run(ctx, time.Millisecond)
135-
assert.Assert(t, err)
136-
}()
137-
138132
concurrentRequests := 20
139133
maxConnections := 70
140134
cl := httpclient.New(httpclient.Config{
@@ -144,6 +138,14 @@ func TestMetrics(t *testing.T) {
144138
Tracer: tracer,
145139
})
146140

141+
// Start sys.Run after httpclient.New so Wrap() completes before Gauges() polling begins.
142+
sys := system.New()
143+
sys.AddGauges(tracer)
144+
go func() {
145+
err := sys.Run(ctx, time.Millisecond)
146+
assert.Assert(t, err)
147+
}()
148+
147149
var wg sync.WaitGroup
148150
wg.Add(concurrentRequests)
149151

0 commit comments

Comments
 (0)