Skip to content

fix: relax TestCollector_HeartbeatFile timing for -race on CI - #20

Merged
gbudjeakp merged 1 commit into
mainfrom
fix/heartbeat-test-timing
Jul 11, 2026
Merged

gbudjeakp merged 1 commit into
mainfrom
fix/heartbeat-test-timing

Conversation

@gbudjeakp

Copy link
Copy Markdown
Collaborator

Root cause: Each collect() tick invokes cpu.Percent + disk/net IOCounters via psutil, which takes 50–100 ms per tick on a loaded runner. The race detector adds further scheduling overhead. The original 400 ms context with a 100 ms heartbeat interval left no room for the heartbeat ticker to fire before context cancellation.

Fix: Widen the budget to collect=200ms, heartbeat=400ms, ctx=3s — gives ~7 heartbeat opportunities even under heavy load.

Each collect() tick calls cpu.Percent + disk/net IOCounters via psutil,
which can take 50-100 ms on a loaded runner. The race detector adds
further overhead, making the original 400 ms / 100 ms heartbeat budget
too tight — the heartbeat ticker never fired before context cancel.

New intervals: collect=200 ms, heartbeat=400 ms, context=3 s.
This gives ~7 heartbeat opportunities even on a heavily loaded machine.
@gbudjeakp
gbudjeakp merged commit dd72801 into main Jul 11, 2026
3 checks passed
@gbudjeakp
gbudjeakp deleted the fix/heartbeat-test-timing branch July 11, 2026 20:39
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