Commit afde4e5
committed
ci: run test containers with --init to fix pytest/single (PG19) Hangup flake
tests/Makefile's docker run for pytest jobs has no init process: make
itself is PID 1 inside the container. GNU Make installs an explicit
SIGHUP handler (to clean up partial targets on interrupt), which
strips away the kernel's usual "PID 1 ignores signals with no
explicit handler" protection for that signal -- any stray SIGHUP
reaching the container kills the whole test run outright with no
resilience:
make: *** [Makefile:67: test] Hangup
Seen recurring on pytest / single (PG19) across unrelated PRs (#1177's
batch, and again on this branch before this commit), always the same
job, never a real test assertion failing -- consistent with this being
a PID-1 signal-handling gap rather than anything in the test's own
logic.
Add --init to DOCKER_RUN_OPTS (Makefile.docker), the single shared
option list both run-test and run-test-prebuilt already use. Docker's
built-in tini becomes the container's actual PID 1, correctly reaping
and forwarding signals, with make demoted to an ordinary child under
normal (non-PID-1) signal semantics.1 parent 9b1bd0e commit afde4e5
1 file changed
Lines changed: 11 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | | - | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
38 | 48 | | |
39 | 49 | | |
40 | 50 | | |
| |||
0 commit comments