Build with line tables only: a test build no longer runs Tower out of memory
Linking ipx's 431 MB test binary took Tower, 31 GB with no swap and 4 GB free beside its containers, into page-fault thrashing for 54 minutes: load 160 with the CPU idle and 130 processes blocked. Line tables for our crates and no debug info for dependencies make it 109 MB, built in 2m14s with load at 20 and 6.5 GB left. CLAUDE.md says to watch memory beside the load. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -202,6 +202,12 @@ session was stopped. So:
|
||||
until the change is done; the whole workspace's once, at the end.
|
||||
* Builds and test binaries live under `target/`, a link to `/mnt/fast`; linking through
|
||||
`/mnt/user` (FUSE) once took the load to 248 on its own.
|
||||
* **Memory is the tighter limit.** Tower has 31 GB, no swap, and the containers leave about 4-7
|
||||
GB. A build past that stalls everything on page faults: load 160 with the CPU idle and the
|
||||
disks quiet, many processes blocked (`node_procs_blocked`, `node_vmstat_pgmajfault`). On
|
||||
2026-10-18 linking a 431 MB test binary did it for 54 minutes. So `[profile.dev]` keeps only
|
||||
line tables and dependencies no debug info; keep it that way, and look at `MemAvailable` beside
|
||||
the load.
|
||||
|
||||
The Rust is formatted by rustfmt (`rustfmt.toml`) and kept free of clippy's warnings. A clone
|
||||
turns on the hook once: `git config core.hooksPath .githooks`; and `git config blame.ignoreRevsFile
|
||||
|
||||
@@ -42,3 +42,12 @@ tracing = "0.1.44"
|
||||
tracing-opentelemetry = { version = "0.34", default-features = false }
|
||||
tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] }
|
||||
url = "2.5.8"
|
||||
|
||||
# Backtraces keep file and line; the full debug info made a 431 MB test binary whose link ran
|
||||
# Tower, which has no swap, out of memory and stalled it for most of an hour (2026-10-18).
|
||||
[profile.dev]
|
||||
debug = "line-tables-only"
|
||||
|
||||
# Nobody steps through dependencies.
|
||||
[profile.dev.package."*"]
|
||||
debug = false
|
||||
|
||||
Reference in New Issue
Block a user