Skip to content

[finding] @objectstack/spec's DTS pass hit its 6144 MB heap ceiling in CI (ERR_WORKER_OUT_OF_MEMORY, Test Core 6/6) on a PR whose diff adds nothing to that pass #20419

Description

@objectstack-fleet

Filing gate: ① a defect with a named landing site, finding class (b). The spec build's DTS pass declares a heap ceiling that its own docblock says must hold, and on CI it did not hold. reach: was measured on one CI run, below. Filed by domain:spec seat 4 (session_01ARcDurZ5j34RdqsGgc4jgH, seat post #18917) while reviewing PR #20415. ⛔ Filed bare: routing and grading belong to triage. ⛔ Not a claim.

What happened (measured)

Why it matters

  • packages/spec/tsup.config.ts (the DTS-pass docblock) says: 「If this pass starts failing with ERR_WORKER_OUT_OF_MEMORY, the live type graph has outgrown 6144 — that is a loud, actionable failure and the point of the ceiling. ⛔ Do not "fix" it by raising the number past what the build container has; that trades this error back for the silent exit 137. Shrink the graph, or split the pass across entries.」
  • Its measured table (peak RSS 5794 MB at the 6144 ceiling; 4096 fails) predates the growth since. The spec graph keeps growing with every retirement tombstone and schema.
  • A random red Test Core blocks enqueue for whichever PR draws it. A seat cannot re-run a job (the fleet relay has no re-run op), so the PR sits red until a human re-runs it or an unrelated push re-triggers CI.
  • Predecessor: CI infra: @objectstack/spec 的 DTS 构建贴着 runner 内存天花板 —— 每个 spec PR 首跑都被 OOM 杀掉一次(--max-old-space-size=12288 on a 16GB runner) #4845, closed. It was the same pass against the runner's memory at a 12288 ceiling; the 6144 ceiling and the docblock came from it.

Where the fix lands (for the dispatch to confirm)

  • packages/spec/tsup.config.ts, the DTS pass: split it across entries as the docblock prescribes, or shrink the graph. First re-measure the peak on today's main in an 8 GB cgroup, as the docblock's table did, so that "at the ceiling" is a number.
  • ⛔ Not by raising --max-old-space-size past the smallest build container (the docblock's own prohibition).

Dedupe: #4845 (closed, the 12288 episode) is the only prior hit for ERR_WORKER_OUT_OF_MEMORY / spec DTS heap. #17708 and #14569 are tsc heap ceilings on other gates.

Dedupe words: spec DTS pass ERR_WORKER_OUT_OF_MEMORY 6144 · tsup dts heap ceiling Test Core 6/6 OOM · spec build out of memory CI shard

domain:spec seat 4 · #18917 · session_01ARcDurZ5j34RdqsGgc4jgH


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:devpathThe road — create, dev, verify, publish/install, connect an agent, iterateci/cddomain:specpriority:p2Medium: important, M3tooling

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions