Improve sensitivity of TestQuerierIndexQueriesRace
Currently, the two goroutines race against each other and it's possible that the main test goroutine finishes way earlier than appendSeries has had a chance to run at all. I tested this change by breaking the code that X fixed and running the race test 100 times. Without the additional time.Sleep the test failed 11 times. With the sleep it failed 65 out of the 100 runs. Which is still not ideal, but it's a step forward. Signed-off-by: Dimitar Dimitrov <dimitar.dimitrov@grafana.com>
This commit is contained in:
parent
91054875d6
commit
1155d736b6
|
@ -2225,6 +2225,7 @@ func TestQuerierIndexQueriesRace(t *testing.T) {
|
||||||
for _, c := range testCases {
|
for _, c := range testCases {
|
||||||
c := c
|
c := c
|
||||||
t.Run(fmt.Sprintf("%v", c.matchers), func(t *testing.T) {
|
t.Run(fmt.Sprintf("%v", c.matchers), func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
db := openTestDB(t, DefaultOptions(), nil)
|
db := openTestDB(t, DefaultOptions(), nil)
|
||||||
h := db.Head()
|
h := db.Head()
|
||||||
t.Cleanup(func() {
|
t.Cleanup(func() {
|
||||||
|
@ -2244,6 +2245,9 @@ func TestQuerierIndexQueriesRace(t *testing.T) {
|
||||||
values, _, err := q.LabelValues(ctx, "seq", c.matchers...)
|
values, _, err := q.LabelValues(ctx, "seq", c.matchers...)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Emptyf(t, values, `label values for label "seq" should be empty`)
|
require.Emptyf(t, values, `label values for label "seq" should be empty`)
|
||||||
|
|
||||||
|
// Sleep to give the appends some change to run.
|
||||||
|
time.Sleep(time.Millisecond)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -2260,6 +2264,7 @@ func appendSeries(t *testing.T, ctx context.Context, wg *sync.WaitGroup, h *Head
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
// Throttle down the appends to keep the test somewhat nimble.
|
// Throttle down the appends to keep the test somewhat nimble.
|
||||||
|
// Otherwise, we end up appending thousands or millions of samples.
|
||||||
time.Sleep(time.Millisecond)
|
time.Sleep(time.Millisecond)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue