-
Notifications
You must be signed in to change notification settings - Fork 18k
time: TestChan/asynctimerchan=1/Ticker failures #66322
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Found new dashboard test flakes for:
2024-03-14 20:20 gotip-linux-amd64-longtest go@386dcf4c time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-14 20:28 gotip-linux-amd64-boringcrypto go@1d96895c time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-14 23:23 gotip-linux-amd64-longtest-race go@502347f1 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-15 03:39 gotip-linux-amd64-longtest-race go@9a9b110f time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 04:32 gotip-linux-amd64-longtest-race go@a29c30f6 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 15:45 gotip-linux-amd64-longtest-race go@c764d56f time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-15 15:59 gotip-linux-ppc64le go@49204af3 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 16:11 gotip-windows-amd64-race go@88480fad time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-15 17:12 gotip-linux-amd64-longtest-race go@6f121623 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-15 17:57 gotip-linux-amd64-staticlockranking go@c7065bb9 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 18:30 gotip-openbsd-amd64 go@4605dfaf time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 15:59 gotip-linux-riscv64 go@49204af3 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-16 00:34 gotip-windows-386 go@b822f098 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-16 02:25 gotip-windows-386 go@68d3a9e4 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-15 03:39 gotip-netbsd-arm64 go@9a9b110f time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 16:57 gotip-linux-amd64-clang15 go@f40bf748 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-18 16:57 gotip-linux-amd64-longtest-race go@af0ebdd4 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 17:08 gotip-linux-amd64-race go@b40dc30d time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 18:59 gotip-linux-amd64-longtest-race go@dc6a5cfc time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-18 19:33 gotip-linux-amd64-longtest-race go@0d7afc2e time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-18 19:36 gotip-linux-amd64-longtest-race go@3c78ace2 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-18 21:29 gotip-windows-amd64 go@3bd95485 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 23:40 gotip-linux-386-longtest go@190d0d3e time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 19:36 gotip-linux-riscv64 go@3c78ace2 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-18 23:57 gotip-linux-riscv64 go@1e9875ca time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-19 11:20 gotip-linux-386-longtest go@eb636f77 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-19 11:31 gotip-linux-arm go@d14cf8f9 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-19 11:47 gotip-darwin-amd64-longtest go@b7508419 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-19 16:19 gotip-linux-amd64-race go@8f7df225 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-19 20:02 gotip-linux-amd64-race go@99522de1 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-19 21:38 gotip-netbsd-arm64 go@f94d82b2 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-20 19:08 gotip-netbsd-arm64 go@6af27c49 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 09:29 gotip-linux-arm go@f2685395 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 16:12 gotip-windows-386 go@d9f97467 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 20:00 gotip-linux-amd64-longtest go@aa1b50e1 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 21:00 gotip-linux-amd64-longtest-race go@0c77b0d0 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 21:01 gotip-linux-amd64-longtest-race go@b4f37e18 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-21 22:14 gotip-linux-arm64 go@4f0408a3 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-22 04:42 gotip-darwin-amd64-nocgo go@a6ecdf29 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-22 06:48 gotip-netbsd-arm64 go@b5e377ce time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-22 13:07 gotip-linux-386-longtest go@27f41bb1 time.TestChan/asynctimerchan=1/Ticker (log)
2024-03-22 16:33 gotip-linux-arm64 go@1c864333 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-22 16:14 gotip-linux-riscv64 go@c2b14631 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-23 04:07 gotip-linux-riscv64 go@83a6c13e time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-21 21:00 gotip-linux-riscv64 go@0c77b0d0 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-20 14:15 gotip-netbsd-arm64 go@9c94baa7 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-25 19:21 gotip-linux-amd64-longtest-race go@2c677361 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-03-25 19:53 gotip-linux-arm64 go@4c2b1e0f time.TestChan/asynctimerchan=1/Ticker (log)
|
cc @rsc This seems to be one of our flakiest tests. I'm getting multiple failures within the tests on an 8 CL stack. |
@rsc Hi Russ if you could take a look at this, would appreciate. Looks like it started happening more frequently around the time of your CL 568341. |
Change https://go.dev/cl/581315 mentions this issue: |
Found new dashboard test flakes for:
2024-04-25 00:46 android-386-emu go@e7aeeae0 time.TestChan (log)
|
The overall time package tests increase from 3.85s to 4.85s on my laptop. But they should be less flaky, and the time is spent sleeping, so it won't slow down the overall machine running multiple package tests in parallel. For #66322. Change-Id: I66d6647c389c943b53045e8836ede4ba3d4670c7 Reviewed-on: https://go-review.googlesource.com/c/go/+/581315 LUCI-TryBot-Result: Go LUCI <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Reviewed-by: Cherry Mui <[email protected]>
Found new dashboard test flakes for:
2024-04-25 01:05 android-amd64-emu go@db5f2b41 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-04-24 13:36 gotip-linux-386-longtest go@62dfa431 time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-24 13:36 gotip-linux-arm64-longtest go@62dfa431 time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-24 15:53 gotip-windows-amd64-race go@3aad2d07 time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-24 18:15 gotip-linux-ppc64_power8 go@e6891188 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-04-25 17:07 gotip-linux-amd64-longtest-race go@06478e4b time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-04-26 21:32 openbsd-amd64-72 go@b439f328 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-04-26 15:38 gotip-linux-amd64-nocgo go@deeebf56 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-04-26 17:08 gotip-linux-amd64-longtest-race go@19691629 time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-26 18:12 gotip-windows-amd64-longtest go@b384ee7c time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-26 23:07 gotip-linux-386-softfloat go@d69f8744 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-04-29 14:01 openbsd-arm64-jsing go@9e0685f9 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-04-30 12:44 gotip-linux-amd64-longtest-race go@dc164ead time.TestChan/asynctimerchan=1/Ticker (log)
2024-04-30 12:44 gotip-linux-ppc64_power8 go@dc164ead time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-05-03 16:48 gotip-linux-ppc64le_power10 go@10c035ac time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-05-07 18:03 gotip-linux-ppc64_power8 go@9c4849bf time.TestChan/asynctimerchan=1/Ticker (log)
2024-05-07 18:42 gotip-windows-amd64-longtest go@c40bb874 time.TestChan/asynctimerchan=1/Ticker (log)
|
My previous CL definitely cut out a bunch of the flakes. Mailed CL 584195 to cut the recent ones too. Perhaps that will be the end of it. The irony here is that all the flaking is in testing the old racy semantics for compatibility. In the new semantics these kinds of races and flakes aren't possible at all. |
Change https://go.dev/cl/584195 mentions this issue: |
For #66322. Change-Id: I1d83c7a3cacd2ab012039d954270a7c87bbdf5ce Reviewed-on: https://go-review.googlesource.com/c/go/+/584195 Reviewed-by: Cherry Mui <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]> Auto-Submit: Russ Cox <[email protected]>
Found new dashboard test flakes for:
2024-05-09 17:06 android-386-emu go@dd6dee48 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-05-09 23:28 darwin-amd64-race go@23154125 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-05-10 14:27 gotip-windows-amd64-race go@b44600f8 time.TestChan/asynctimerchan=1/Ticker (log)
|
Found new dashboard test flakes for:
2024-05-11 00:21 darwin-amd64-race go@74a49188 time.TestChan (log)
|
Found new dashboard test flakes for:
2024-05-11 20:38 netbsd-arm64-bsiegert go@7f9edb42 time.TestChan (log)
|
Change https://go.dev/cl/585359 mentions this issue: |
Trying to write a test for the corner cases in the old async timer chan implementation may have been a mistake, especially since this isn't going to be the default timer chan implementation anymore. But let's try one more time to fix the test. I reproduced the remaining builder failures on my Mac laptop by overloading the CPU in one window and then running 48 instances of the flaky test in loops using 'stress' in another window. It turns out that, contrary to my understanding of async timers and therefore contrary to what the test expected, it is technically possible for t := time.NewTicker(1) t.Reset(1000*time.Hour) <-t.C <-t.C to observe two time values on t.C, as opposed to blocking forever. We always expect the first time value, since the ticker goes off immediately (after 1ns) and sends that value into the channel buffer. To get the second value, the ticker has to be in the process of going off (which it is doing constantly anyway), and the timer goroutine has to be about to call sendTime and then get rescheduled. Then t.Reset and the first <-t.C have to happen. Then the timer goroutine gets rescheduled and can run sendTime's non-blocking send on t.C, which finds an empty buffer and writes a value. This is unlikely, of course, but it definitely happens. This program always panics in just a second or two on my laptop: package main import ( "os" "time" ) func main() { os.Setenv("GODEBUG", "asynctimerchan=1") for { go func() { t := time.NewTicker(1) t.Reset(1000*time.Hour) <-t.C select { case <-t.C: panic("two receives") case <-time.After(1*time.Second): } }() } } Because I did not understand this nuance, the test did not expect it. This CL rewrites the test to expect that possibility. I can no longer make the test fail under 'stress' on my laptop. For #66322. Change-Id: I15c75d2c6f24197c43094da20d6ab55306a0a9f1 Reviewed-on: https://go-review.googlesource.com/c/go/+/585359 Reviewed-by: Cherry Mui <[email protected]> Reviewed-by: Ian Lance Taylor <[email protected]> Auto-Submit: Russ Cox <[email protected]> LUCI-TryBot-Result: Go LUCI <[email protected]>
We were getting reports every day or two, and now it has been 15 days without a report. Closing. |
Issue created automatically to collect these failures.
Example (log):
— watchflakes
The text was updated successfully, but these errors were encountered: