You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test(cache): TestRedis_ProbeFitsASlowReconnect flakes on its first lookup on CI #728
Problem.TestRedis_ProbeFitsASlowReconnect (internal/cache/redis_integration_test.go) fails intermittently on GitHub runners, before it reaches the behaviour it tests. The failure is the test's FIRST lookup (line 974), which runs before any proxy delay is injected:
The integration job runs this package in parallel with others that start containers (t.Parallel(), several packages per go test). So a loaded runner can push the first handshake past 100 ms. This is inferred; the handshake time on the runner has not been measured.
Problem.
TestRedis_ProbeFitsASlowReconnect(internal/cache/redis_integration_test.go) fails intermittently on GitHub runners, before it reaches the behaviour it tests. The failure is the test's FIRST lookup (line 974), which runs before any proxy delay is injected:Evidence (measured).
main, run 36765464401 (2026-09-30): failed, with this as the only Go failure.chtypes-v2(feat(typelayer)!: validate, coerce and filter through chtypes #712), run 37180651059: failed.chtypes-v2, run 37181225668, attempt 1: failed; attempt 2 (re-run of the failed job, same commit): passed.make cipasses it.Context.
Timeout100 ms, through a TLS proxy (selfSigned,newProxy). Its firstLookuphas to dial and complete the TLS handshake within that per-operation timeout, the behaviour bug(cache): Redis recovery probe must fit a fresh dial in the op timeout #664 describes for rueidis.t.Parallel(), several packages pergo test). So a loaded runner can push the first handshake past 100 ms. This is inferred; the handshake time on the runner has not been measured.Related: #664.