-
Notifications
You must be signed in to change notification settings - Fork 2
Default /tmp tmpfs too small to build brood-box inside its own VM #55
Description
Problem
When running a coding agent inside a brood-box VM and attempting to compile the full cmd/bbox/ binary, go build fails with no space left on device:
# github.com/modern-go/reflect2
compile: writing output: write $WORK/b630/_pkg_.a: no space left on device
go.yaml.in/yaml/v2: write /tmp/go-build2535974877/b631/importcfg: no space left on device
sigs.k8s.io/randfill/bytesource: write /tmp/go-build2535974877/b635/importcfg: no space left on device
...
Go uses /tmp/go-build* for its build cache. The current /tmp tmpfs is 512 MiB, which is not enough for the full dependency tree (k8s, OCI, toolhive, Cedar, etc. — hundreds of transitive packages).
$ df -h /tmp
Filesystem Size Used Avail Use% Mounted on
tmpfs 512M 3.7M 509M 1% /tmp
Impact
Brood-box cannot be used to develop brood-box itself — the project's own build overflows the VM's /tmp. Projects with large dependency trees (common in Go with k8s/cloud SDKs) will hit the same issue.
Suggested fix
Increase the default /tmp tmpfs size. Options:
- Bump the default to 2 GiB — covers most Go/Rust builds with large dep trees while staying well within host RAM on typical dev machines.
- Bump to 1 GiB as a more conservative middle ground.
Users can already override this via --tmp-size or defaults.tmp_size in config, but the out-of-the-box default should handle building typical Go projects without manual tuning.
Environment
/tmpis a 512 MiB tmpfs (tmpfs rw,nosuid,nodev,relatime,size=524288k)- Total VM RAM: ~4 GiB (devtmpfs reports ~2 GiB for device memory)
- Go 1.26, building
cmd/bbox/with full transitive dependency tree