.forge/issues/f06329e9-7e81-41f8-acf2-a48baf70cdcd/issue.md 1.8 KiB 36 lines Raw

id: f06329e9-7e81-41f8-acf2-a48baf70cdcd title: 'build aborts (allocator) on large blobs: every file is read fully into memory' state: closed labels:


build reads every blob fully into memory (gitx::show → run_git → Vec<u8>), regardless of size. PREVIEW_MAX_BYTES (256 KiB) only decides whether the page renders a preview — the bytes were already in RAM.

Verified:

$ head -c 400000000 /dev/zero > big.bin && git add -A && git commit -m big
$ ( ulimit -v 900000; hu13 build . -o out )
memory allocation of 400000000 bytes failed
Aborted (core dumped)          # exit 134

The failure is a raw allocator abort (SIGABRT), not a clean hu13: ... error, and in entrypoint.sh this means the container crash-loops before serve starts.

Real repos carry large binaries (videos, datasets, vendored archives) and a PR can add one deliberately. There is no --max-blob and no streaming path.

Fix direction:

Acceptance:

view raw