etherpad-lite/.github/workflows
John McLear c4d2467cb3
test(ci): OS-level sidecar watcher for the Windows silent ELIFECYCLE (#7846)
In-process diagnostics (diagnostics.ts heartbeat at 5 Hz + node-report
snapshots on every beforeEach and heartbeat tick) merged in #7838 and
#7842 reach a hard ceiling: during every captured death window the V8
main isolate is event-loop-starved for 200-400 ms before the process
is externally terminated, so any timer-driven probe (heartbeat,
setTimeout, --report-on-signal handler) never gets serviced and we
have zero JS-visible state from the actual moment of death.

To capture state during the starvation window we need a probe whose
own scheduling does not depend on the dying process's libuv event
loop. This commit adds a tiny bash background loop to the Windows
backend-test steps (both with- and without-plugins). Every 500 ms it
appends:
  - netstat.log: localhost TCP socket state — surfaces TIME_WAIT /
    CLOSE_WAIT accumulation or ephemeral-port exhaustion that the
    in-process libuv handle list can't see (libuv only shows handles
    Node currently knows about; the kernel may hold many more sockets
    in disposal states).
  - tasklist.log: node.exe process state from the Windows OS view
    (handle count, working set, CPU time), independent of whether V8
    is responsive.

Both files land in $GITHUB_WORKSPACE/node-report/ which is already
the artifact-upload target on failure, so they ride for free on
existing infrastructure. The watcher is killed cleanly after `pnpm
test` returns so it never holds the runner open.

On the next captured silent ELIFECYCLE we'll have, for the first
time, a 500 ms-resolution external observation of TCP and process
state across the death window.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 12:06:29 +01:00
..
backend-tests.yml test(ci): OS-level sidecar watcher for the Windows silent ELIFECYCLE (#7846) 2026-05-26 12:06:29 +01:00
build-and-deploy-docs.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
codeql-analysis.yml build(deps): bump actions/checkout from 5 to 6 (#7233) 2025-11-30 20:31:22 +01:00
deb-package.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
dependency-review.yml build(deps): bump actions/dependency-review-action from 4 to 5 (#7729) 2026-05-12 20:44:39 +02:00
docker.yml test(docker): admin save persists across container restart (#7819) (#7821) 2026-05-19 17:17:12 +01:00
frontend-admin-tests.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
frontend-tests.yml ci: swap deprecated ep_readonly_guest for ep_guest in plugin matrix (#7808) 2026-05-18 13:30:58 +01:00
handleRelease.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
installer-test.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
load-test.yml ci: swap deprecated ep_readonly_guest for ep_guest in plugin matrix (#7808) 2026-05-18 13:30:58 +01:00
perform-type-check.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
rate-limit.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
release.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
releaseEtherpad.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
snap-build.yml build(deps): bump actions/upload-artifact from 4 to 7 (#7669) 2026-05-06 20:12:12 +02:00
snap-publish.yml build(deps): bump actions/download-artifact from 4 to 8 (#7668) 2026-05-06 20:12:20 +02:00
stale.yml build(deps): bump actions/stale from 9 to 10 (#7115) 2025-09-08 19:25:33 +02:00
update-plugins.yml Roll Node.js floor back to >= 24 (Active LTS) — closes #7779 (#7781) 2026-05-16 13:07:59 +01:00
upgrade-from-latest-release.yml ci: swap deprecated ep_readonly_guest for ep_guest in plugin matrix (#7808) 2026-05-18 13:30:58 +01:00