Commit f538398
diag: SIGABRT watchdog on CI test hang so backtrace survives
v0.255.9 fixed one real bug at transient-survives-gc-yield (use-
after-free reproducible locally under ASan), but mino's CI matrix
still hangs at the same test on macos-14 / ubuntu-24.04{,-arm}.
Without a stack trace from the hung process we can't tell whether
mino is in a tight loop, a pthread cv_wait, a GC mark-stack drain,
or somewhere else.
.github/workflows/ci.yml's Test step now wraps `./mino tests/
run.clj` in a watchdog:
* Streams stderr to /tmp/test_trace.log (already an artifact on
failure since v0.255.8).
* Backgrounds mino via `(exec ./mino ...)` so the subshell's $!
is mino's pid directly.
* 7m30s into the run, if mino is still alive, sends SIGABRT.
* mino's existing crash_handler (main.c:711) prints fatal
signal, GC stats (minor / major / live / alloc / freed / phase
/ remset), and a libc-backtrace stack frame list.
* The 30s buffer before GHA's own SIGKILL gives the handler
time to flush and exit cleanly with code 134.
Local behaviour unchanged. The wrapper only lives in CI.
This release contains no runtime change; v0.255.9's fix is still
load-bearing.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>1 parent b9603f9 commit f538398
3 files changed
Lines changed: 77 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
89 | 89 | | |
90 | 90 | | |
91 | 91 | | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
92 | 101 | | |
93 | 102 | | |
94 | 103 | | |
95 | | - | |
96 | | - | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
97 | 135 | | |
98 | 136 | | |
99 | | - | |
| 137 | + | |
| 138 | + | |
100 | 139 | | |
101 | 140 | | |
102 | 141 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
3 | 37 | | |
4 | 38 | | |
5 | 39 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
31 | | - | |
| 31 | + | |
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| |||
0 commit comments