Skip to content

Default /tmp tmpfs too small to build brood-box inside its own VM #55

@JAORMX

Description

@JAORMX

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:

  1. 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.
  2. 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

  • /tmp is 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions