Repository navigation
CI: bound the test run so a hung container engine names the stuck test - #54
Deep-Sixed wants to merge 1 commit into
Conversation
linux-containment hung twice on one PR (an hour with no output, cancelled by hand), stopping inside a docker process with nothing to say which test it was. Now: - pytest-timeout (dev dependency): --timeout=600 fails a test that runs longer than 10 minutes, with its name and a stack dump, and the run carries on. The longest real test takes seconds. Not -v, which would make every skip line trip the job's "no skips" guard. - timeout-minutes: 30 on linux-containment and portability (the suite takes about 4 minutes), bounding whatever a test timeout cannot catch. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013p3FU6gUJ1MGinnmEgvHsm
|
#54 overlaps with #50, which looks like the better PR. I suggest closing this one in favour of it; I haven't closed it myself. #50 (opened 2026-09-26) reproduced the The two touch the same lines of This PR's Generated by Claude Code Generated by Claude Code |
Why
linux-containmenthung twice on one PR (#45). Each time it stopped inside adockerprocess after an hour with no output, and had to be cancelled by hand. The log couldn't say which test was stuck, so the cause had to be guessed. About 20 other runs that day finished in 3–4 minutes.Changes
pytest-timeout(new dev dependency) with--timeout=600on both test jobs. A test running longer than 10 minutes fails with its name and a stack dump, and the run carries on with the rest. The longest real test takes seconds.timeout-minutes: 30onlinux-containmentandportability(the suite takes about 4 minutes). This bounds whatever a test timeout can't catch, such as a hung install or image pull.-v: the job's "no skips allowed" guard readsSKIPPEDlines, and verbose output would print one per skipped test.parser-images.yml, which already hastimeout-minutes: 120and runs long model tests on purpose.Checked
sleep 60, standing in for a docker call that never answers) with--timeout=3fails alone, names itself withFailed: Timeout (>3.0s) from pytest-timeout, and the tests around it pass. Nothing is left running afterwards.--timeout=600(864 passed, 89 skipped).🤖 Generated with Claude Code
https://claude.ai/code/session_013p3FU6gUJ1MGinnmEgvHsm
Generated by Claude Code