Skip to content

Commit 69825ad

Browse files
committed
ci: TEMPORARY #3071 diagnostics — isolated verbose plugin-audit runs + dmesg OOM probe
plugin-audit#test dies on the hosted runner with zero captured output (3x deterministic since main@4f8c2d1) while passing locally under Node 20/22 with the exact CI command. Bracket the turbo test step with an isolated, verbose, ungrouped vitest run (before: fresh machine; after: post-graph machine + kernel OOM traces) so the real failure output cannot be lost to the GH log pipeline. SIGQUIT-on-timeout dumps Node thread stacks if it hangs. To be REMOVED once #3071's root cause is fixed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1BtxNeUaGmvUYr8FwtUNu
1 parent 7bc9e79 commit 69825ad

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

.github/workflows/ci.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,12 +115,41 @@ jobs:
115115
# while passing everywhere else — first seen on main @4f8c2d1,
116116
# reproduced twice on #3037. Matching concurrency to the core count
117117
# bounds peak memory; the job is CPU-bound anyway.
118+
# ── TEMPORARY DIAGNOSTICS for #3071 — remove before merge ────────────
119+
# plugin-audit#test dies on the hosted runner with zero captured output
120+
# (3× deterministic; passes locally under Node 20/22 with the exact CI
121+
# command). Run it ISOLATED first — fresh machine, no turbo grouping,
122+
# verbose reporter — so its real output cannot be mangled by the GH log
123+
# pipeline under burst. SIGQUIT before the timeout makes Node dump all
124+
# thread stacks if it hangs.
125+
- name: DIAG 3071 — plugin-audit isolated, verbose (temporary)
126+
if: github.event_name == 'pull_request'
127+
run: |
128+
node --version
129+
free -h || true
130+
echo "── isolated vitest run ──"
131+
timeout -s QUIT 240 pnpm --filter @objectstack/plugin-audit exec vitest run --reporter=verbose --no-file-parallelism; echo "exit=$?"
132+
continue-on-error: true
133+
118134
- name: Run affected tests (PR)
119135
if: github.event_name == 'pull_request'
120136
env:
121137
TURBO_SCM_BASE: ${{ github.event.pull_request.base.sha }}
122138
run: pnpm turbo run test --affected --concurrency=4
123139

140+
# ── TEMPORARY DIAGNOSTICS for #3071 — remove before merge ────────────
141+
# If the turbo step above still kills plugin-audit silently, dmesg shows
142+
# whether the kernel OOM-killer fired, and the second isolated re-run
143+
# distinguishes "machine state after the full graph" from "fresh".
144+
- name: DIAG 3071 — post-turbo dmesg + re-run (temporary)
145+
if: github.event_name == 'pull_request' && always()
146+
run: |
147+
echo "── kernel OOM traces ──"
148+
sudo dmesg | grep -iE "oom|killed process|out of memory" | tail -20 || echo "(no OOM traces)"
149+
echo "── plugin-audit re-run on post-graph machine ──"
150+
timeout -s QUIT 240 pnpm --filter @objectstack/plugin-audit exec vitest run --reporter=verbose --no-file-parallelism; echo "exit=$?"
151+
continue-on-error: true
152+
124153
# Push to main: full run, but exclude spec's plain test task — the
125154
# coverage step below executes the exact same 250-file spec suite once,
126155
# with coverage. Previously the spec suite ran twice per push.

0 commit comments

Comments
 (0)