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
Fix retry queue to re-run failed tests on Buildkite rebuild
When Buildkite rebuilds a job (new BUILDKITE_BUILD_ID), workers start
with an empty per-worker log in the new Redis namespace. Previously,
retry_queue would find no matching failures and fall through to "The
retry queue does not contain any failure" — leaving error-reports
populated and the summary step failing indefinitely.
Fix: when the per-worker log intersection yields no failures, fall back
to redis.hkeys(key('error-reports')) so any worker can retry failures
from any other worker. Also handles automatic LSO retries
(BUILDKITE_RETRY_TYPE=automatic) via the existing elsif retry? branch.
Additional fixes:
- Retry#acknowledge queues a Redis SADD so BuildRecord#record_success
gets correct multi-exec result indices for stats delta correction
- reset_stats now purges error-report-deltas for the resetting worker
to prevent stats underflow on same-worker retries
- QueueEntry.format raises ArgumentError when file_path is nil/empty
and canonicalizes paths via File.expand_path
- SingleExample#queue_entry resolves file_path via source_location
- RSpec SingleExample and BuildStatusRecorder use example.file_path
0 commit comments