Skip to content

fleettest: add a per-target max_retry budget for flaky tests#979

Merged
tridge merged 1 commit into
RsyncProject:masterfrom
tridge:pr-fleettest-max-retry
Jun 6, 2026
Merged

fleettest: add a per-target max_retry budget for flaky tests#979
tridge merged 1 commit into
RsyncProject:masterfrom
tridge:pr-fleettest-max-retry

Conversation

@tridge
Copy link
Copy Markdown
Member

@tridge tridge commented Jun 6, 2026

A slow or heavily-loaded fleet box can occasionally flake a concurrency- sensitive test (e.g. a daemon/lsh test under -j8 on a nested-VM Solaris box). Rather than dropping the whole target to a lower -j, add a per-target "max_retry" property: after a run, each failed test is re-run on its own up to max_retry more times, and any that then pass are dropped from the failure list. Recovered tests are listed in a new "RECOVERED" report section, so a flake is surfaced, never silently hidden.

Applies to every pass for the target (pipe, tcp, protoNN, nonroot). Default 0 keeps the current no-retry behaviour.

A slow or heavily-loaded fleet box can occasionally flake a concurrency-
sensitive test (e.g. a daemon/lsh test under -j8 on a nested-VM Solaris box).
Rather than dropping the whole target to a lower -j, add a per-target
"max_retry" property: after a run, each failed test is re-run on its own up to
max_retry more times, and any that then pass are dropped from the failure list.
Recovered tests are listed in a new "RECOVERED" report section, so a flake is
surfaced, never silently hidden.

Applies to every pass for the target (pipe, tcp, protoNN, nonroot).  Default 0
keeps the current no-retry behaviour.
@tridge tridge merged commit bad790d into RsyncProject:master Jun 6, 2026
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant