Skip to content

Give codec-native-build's release compile a 6 GiB bound (#781) - #782

Merged
rmcdaniel merged 1 commit into
mainfrom
fix/781-codec-native-build-memory
Oct 26, 2026
Merged

rmcdaniel merged 1 commit into
mainfrom
fix/781-codec-native-build-memory

Conversation

@rmcdaniel

Copy link
Copy Markdown
Member

Addresses #781.

codec-native-build builds the bounded optimized server artifact for deadline health. It ran in a container capped at 4 GiB with no swap (--cpus=1 --memory=4g --memory-swap=4g, one cargo job).

Measured. I ran local release builds with CI's flags (--release --locked, jobs 1, incremental off, release debug 0) in an exact 4 GiB container on the same compiler image. Both builds completed:

That is within about 6% of the cap. Attempt 1 of #776's exact-head run (40321678938) lost this job's final rustc to signal 9, with no compiler diagnostic; its single rerun passed. The script's comment ("peaks near 2 GiB") was stale.

Change. The bound becomes 6 GiB, still with no swap and one job at a time, so it still means one rustc. build.json records the new memory_bytes. The standard hosted runner has 16 GB, and this job runs only this container. Nothing else reads the recorded bound.

This is a CI script change only; product source is untouched.

🤖 Generated with Claude Code

The bounded optimized build for deadline health ran in a 4 GiB container.
Its comment said the compile peaks near 2 GiB; measured with CI's flags in
an exact 4 GiB container it peaks at 3.99 GB on main before #776 and
4.06 GB after, within about 6% of the cap, and attempt 1 of #776's
exact-head run lost rustc to SIGKILL. The bound becomes 6 GiB, still one
job at a time, and build.json records it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@sonarqubecloud

Copy link
Copy Markdown

@rmcdaniel

Copy link
Copy Markdown
Member Author

Security review: clear at exact head 7e3b1dd (tree f486727e366a8a20e9c3440afcdb6e7d8fbbb7e3).

  • Verified the one-file, CI-only delta. The build remains limited to one CPU and one Cargo job; memory and total memory-plus-swap are both 6 GiB, so the container has a hard RAM bound and no swap. The recorded build.json resource values match the runtime flags.
  • The 6 GiB bound is proportionate to the measured approximately 4.06 GB cgroup peak and retains substantial headroom on the standard 16 GB public Linux runner. Docker documents that equal memory and memory-swap values disable container swap: https://docs.docker.com/engine/containers/resource_constraints/#prevent-a-container-from-using-swap. GitHub documents the 16 GB runner specification: https://docs.github.com/en/actions/reference/runners/github-hosted-runners#standard-github-hosted-runners-for-public-repositories.
  • Exact-head hosted codec-native-build job 121595672213 completed successfully at 2026-10-26T13:31:41Z, including artifact publication and task-owned container cleanup.
  • Public Boundary, central action policy, repository contracts, and completed CodeQL analyses are green. Remaining active required checks stay ordinary merge gates; this clearance does not waive them.

No product/runtime source, credential, access-control, or secret-handling surface changed. No Security hold remains on this exact head.

@rmcdaniel
rmcdaniel merged commit 0ef7c93 into main Oct 26, 2026
98 of 100 checks passed
@rmcdaniel
rmcdaniel deleted the fix/781-codec-native-build-memory branch October 26, 2026 14:02
@rmcdaniel

Copy link
Copy Markdown
Member Author

Merge receipt.

  • Merged: 0ef7c9321c33963db20df146d18c383189952b6d
    • tree f486727e366a8a20e9c3440afcdb6e7d8fbbb7e3, equal to the cleared head's tree
    • parents 47f4c5447a33dfede4e0f908bfaec7d68bd1a40c (main) and 7e3b1dd1850a5ece6dce253beb2b9f53103cc7e0 (head)
    • merged SHA-pinned to the cleared head
  • Security clearance: exact head 7e3b1dd1 (6417277707); final check re-confirmed after attempt 2.
  • CI: Shared Server fixtures run 40329690090.

🤖 Generated with Claude Code

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant