CI: bound each parallel-make-check config with its own timeout - #11406
Open
julek-wolfssl wants to merge 2 commits into
Open
CI: bound each parallel-make-check config with its own timeout#11406julek-wolfssl wants to merge 2 commits into
julek-wolfssl wants to merge 2 commits into
Conversation
A wedged config ran until the job's timeout-minutes killed the whole job. That reports nothing: the other configs' results are lost, and the upload step never runs because a job timeout cancels rather than fails. Add --timeout to parallel-make-check.py to kill and fail just that config, and set it to 30 min in trackmemory, where 168 of 3508 job runs since 2026-06-12 died this way - every single-config stall one of the two wolfEntropy configs. Also upload logs on cancellation, and refresh the stale "minutes" estimates from measured medians.
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
The CI timeout change is self-contained and defaults to no limit, so existing workflows won’t break while the updated workflow gains resilience against wedged configs.
Pull request overview
This PR improves CI robustness for multi-config make check runs by adding a per-configuration wall-time bound to .github/scripts/parallel-make-check.py, preventing a single wedged configuration from consuming the entire job timeout and skipping log upload.
Changes:
- Add
--timeoutsupport toparallel-make-check.py, enforcing a per-config deadline across the whole step sequence and failing the config on expiry. - Update the
trackmemoryworkflow to pass--timeout=30and refresh per-configminutesestimates. - Upload logs on both failure and cancellation to better preserve debugging artifacts.
File summaries
| File | Description |
|---|---|
| .github/workflows/trackmemory.yml | Refresh config runtime estimates, add per-config timeout, and broaden log-upload conditions. |
| .github/scripts/parallel-make-check.py | Implement per-config timeout handling with bounded waits and process-group termination escalation. |
Review details
- Files reviewed: 2/2 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+86
to
+90
| {"name": "all-smallstack-cache-trace", "minutes": 8.9, | ||
| "configure": ["--enable-smallstackcache", "--enable-smallstack", | ||
| "--enable-all", "--enable-debug-trace-errcodes", | ||
| "CFLAGS=-DWC_RNG_SEED_CB -DWOLFSSL_TRACK_MEMORY -DWOLFSSL_DEBUG_MEMORY"]}, | ||
| {"name": "all-wolfentropy", "minutes": 4.1, | ||
| {"name": "all-wolfentropy", "minutes": 13.4, |
The hosted images carry Google Chrome and Microsoft apt repos. No wolfSSL job installs from either, but apt-get update fails if either serves a bad index, which took out a falcon-interop job on 2026-09-09 with a Hash Sum mismatch on dl.google.com while the Ubuntu archive was fine. Remove them by matching the repo host in the file, not by filename or by wiping sources.list.d, so Ubuntu's own sources survive wherever they live (24.04 keeps them in sources.list.d/ubuntu.sources). Container jobs are left alone: those images carry neither repo, nor sudo.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A wedged config previously ran until the job's overall timeout-minutes
killed the whole job, losing results from the other configs and
skipping the upload step (job timeouts cancel rather than fail).
--timeouttoparallel-make-check.pyso a stuck config iskilled and fails on its own instead of taking down the whole job.
2026-06-12 died this way, every single-config stall being one of the
two wolfEntropy configs.