fix(ci): raise the unit-shard heap ceiling to 8192 MB to stop the SIGABRT OOM

The 8 unit shards run under V8 coverage instrumentation, which retains far more
memory than the bare suite. With the 4096 MB ceiling they began aborting with
exit 134 ("Ineffective mark-compacts near heap limit") at ~4086 MB as the
provider catalogue grew during the v3.8.50 cycle: every test in the shard passed
and the process died at the end, which reads as a test failure without being one.

Aligns test:unit:ci:shard and test:unit:serial with the 8192 MB the non-sharded
variants already use. GitHub-hosted runners have 16 GB, so the headroom is real.
Validated by the CI run on this commit — the shards are the gate.

Refs #10692
This commit is contained in:
Xiangzhe
2026-08-25 07:37:06 -03:00
parent 5e370c2ca7
commit 3d59c661de
2 changed files with 10 additions and 2 deletions

View File

@@ -792,6 +792,14 @@ jobs:
# D3 (plano mestre): a coverage é coletada NESTE mesmo run (c8/NODE_V8_COVERAGE propaga
# aos filhos através do npm) — elimina a matrix Coverage Shard ×8, que re-executava a
# suíte inteira só para medir o gate. Padrão usado pelo CI do próprio nodejs/node.
# Heap: os shards rodam sob instrumentacao de cobertura do V8, que retem muito
# mais memoria que a suite crua. Com o teto antigo de 4096 MB os shards passaram
# a abortar com SIGABRT (exit 134, "Ineffective mark-compacts near heap limit")
# ao redor de 4086 MB conforme o catalogo de providers cresceu no ciclo v3.8.50 —
# todos os testes passavam e o processo morria no fim, o que le como falha de
# teste sem ser. O teto vive em `test:unit:ci:shard` (package.json) e agora
# acompanha os 8192 MB ja usados pelas variantes nao-shardadas; os runners
# GitHub-hosted tem 16 GB.
- name: Unit tests (shard ${{ matrix.shard }}/8) with V8 coverage
env:
TEST_SHARD: ${{ matrix.shard }}/8