fix(e2e): run Playwright single-worker to stop OOM page-crash in verify-stack (closes #115) #116

Merged
not merged 1 commits from fix/115-e2e-single-worker into main 2026-07-22 12:04:01 +00:00
Contributor

What & why

verify-stack was failing intermittently on the Playwright e2e with Page crashed mid-action (locator.fill) and 90s timeouts — the run logged "2 workers", i.e. two full channel: 'chromium' browsers running alongside the entire compose stack on the 8 GB self-hosted runner. The renderer gets OOM-killed. Tests passed only when a retry happened to run alone.

Fix: pin workers: 1 in tests/e2e/playwright.config.ts (there are only two long-running happy-path specs, so serial costs little) and add --disable-dev-shm-usage. This removes the memory contention at the source rather than leaning on retries (CLAUDE.md §15 — flaky tests are fixed, not retried).

Closes #115

Definition of Done

  • Linked Gitea issue (#115).
  • Failing test committed first — N/A: the "red" is the observed verify-stack e2e crash (Page crashed, 2 workers); this changes test-harness config to fix it. Verified green by re-running the e2e (see notes).
  • Conventional Commit referencing the issue (refs #115).
  • CI green — the point of the change; verify-stack e2e should stop OOM-crashing.
  • Docs — none needed (test-config only; rationale in an inline comment).
  • ADR — N/A.

Notes for reviewers

  • One-line-of-behaviour change: workers: 1 + --disable-dev-shm-usage; no product or spec changes.
  • Page crashed is a renderer OOM, not a product defect — the happy path passes when a browser runs alone (the flaky retries already showed this). Single-worker makes that the normal case.
  • Independent of #110 (that PR fixes docker-compose.local.yml; this fixes the CI verify-stack e2e). Landing this first unblocks #110's verify-stack.
## What & why `verify-stack` was failing intermittently on the Playwright e2e with `Page crashed` mid-action (`locator.fill`) and 90s timeouts — the run logged **"2 workers"**, i.e. two full `channel: 'chromium'` browsers running alongside the entire compose stack on the 8 GB self-hosted runner. The renderer gets OOM-killed. Tests passed only when a retry happened to run alone. Fix: pin `workers: 1` in `tests/e2e/playwright.config.ts` (there are only two long-running happy-path specs, so serial costs little) and add `--disable-dev-shm-usage`. This removes the memory contention at the source rather than leaning on `retries` (CLAUDE.md §15 — flaky tests are fixed, not retried). Closes #115 ## Definition of Done - [x] Linked Gitea issue (#115). - [ ] Failing test committed first — N/A: the "red" is the observed `verify-stack` e2e crash (`Page crashed`, 2 workers); this changes test-harness config to fix it. Verified green by re-running the e2e (see notes). - [x] Conventional Commit referencing the issue (`refs #115`). - [ ] CI green — the point of the change; `verify-stack` e2e should stop OOM-crashing. - [x] Docs — none needed (test-config only; rationale in an inline comment). - [ ] ADR — N/A. ## Notes for reviewers - One-line-of-behaviour change: `workers: 1` + `--disable-dev-shm-usage`; no product or spec changes. - `Page crashed` is a renderer OOM, not a product defect — the happy path passes when a browser runs alone (the flaky retries already showed this). Single-worker makes that the normal case. - Independent of #110 (that PR fixes `docker-compose.local.yml`; this fixes the CI `verify-stack` e2e). Landing this first unblocks #110's `verify-stack`.
not added 1 commit 2026-07-22 11:26:59 +00:00
fix(e2e): run Playwright single-worker to stop OOM page-crash in verify-stack (refs #115)
CI / lint (pull_request) Successful in 1m19s
CI / build (pull_request) Successful in 1m2s
CI / unit (pull_request) Successful in 1m14s
CI / frontend (pull_request) Successful in 2m37s
CI / mutation (pull_request) Successful in 5m34s
CI / verify-stack (pull_request) Successful in 8m49s
88af769d45
verify-stack intermittently failed on the e2e with "Page crashed" mid-action:
Playwright defaulted to 2 workers, so two full chromium browsers ran alongside the
whole compose stack on the 8 GB runner and the renderer was OOM-killed. Pin
workers: 1 (only two long-running happy-path specs) and add --disable-dev-shm-usage,
removing the memory contention rather than masking it with retries (CLAUDE.md §15).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
not merged commit d5e5fa254c into main 2026-07-22 12:04:01 +00:00
Sign in to join this conversation.