[pkg-go] Bug#976403: mtail: racy TestReadFromPipe test in internal/mtail/read_pipe_integration_test.go
Filippo Giunchedi
filippo at debian.org
Fri Dec 4 17:21:37 GMT 2020
Subject: mtail: racy TestReadFromPipe test in internal/mtail/read_pipe_integration_test.go
Package: mtail
Version: 3.0.0~rc38-1
Severity: normal
The latest upload has produced mixed results between buildd and autopkgtest
failing to run TestReadFromPipe, e.g.
https://buildd.debian.org/status/fetch.php?pkg=mtail&arch=armhf&ver=3.0.0%7Erc38-1&stamp=1606840174&raw=0
is a success:
=== RUN TestReadFromPipe
=== RUN TestReadFromPipe/0s_true
=== RUN TestReadFromPipe/10ms_false
--- PASS: TestReadFromPipe (10.02s)
--- PASS: TestReadFromPipe/0s_true (5.00s)
--- PASS: TestReadFromPipe/10ms_false (5.01s)
But for example autopkgtest amd64 failed: https://ci.debian.net/data/autopkgtest/testing/amd64/m/mtail/8626687/log.gz
=== RUN TestReadFromPipe
=== RUN TestReadFromPipe/0s_true
=== RUN TestReadFromPipe/10ms_false
read_pipe_integration_test.go:53: Did not see "lines_total" have delta by deadline: got 0 - 0 = 0, want 3
--- FAIL: TestReadFromPipe (65.01s)
--- PASS: TestReadFromPipe/0s_true (5.00s)
--- FAIL: TestReadFromPipe/10ms_false (60.00s)
=== RUN TestTruncatedLogRead
=== RUN TestTruncatedLogRead/0s_true
=== RUN TestTruncatedLogRead/10ms_false
--- PASS: TestTruncatedLogRead (0.09s)
--- PASS: TestTruncatedLogRead/0s_true (0.05s)
--- PASS: TestTruncatedLogRead/10ms_false (0.04s)
FAIL
FAIL github.com/google/mtail/internal/mtail 69.897s
The internal/mtail/read_pipe_integration_test.go test file has been changed
recently upstream, specifically removing the "integration" tag in f45531acd69a
and refactoring the pollInterval initialization in a2353dd63. The latter commit
seems to have changed the number of invocations for this test from one with 0
pollInterval and fsnotify disable to running the test twice based on
LogWatcherTestTable (below) which I think is part of the culprit.
+// logWatcherTestTable contains reusable inputs to NewLogWatcher under test.
+var LogWatcherTestTable = []struct {
+ PollInterval time.Duration
+ EnableFsNotify bool
+}{
+ {0, true}, // notify only
+ {10 * time.Millisecond, false}, // poll only
+}
More information about the Pkg-go-maintainers
mailing list