Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Errors, Cache Integrity, and Shutdown

A cache miss is not an error. MissType records normal absence, forced bypass, timeout, and read failure so statistics and policy retain the distinction. Compiler failure is also a valid completed result whose stdout, stderr, and exit status must reach the build tool.

Cache writes occur only after successful compilation and output collection. Entries are assembled through controlled archive and temporary-file paths; backend-specific publication decides when a key becomes visible. Multi-level backfill and write-error policy determine whether failure at a slower level should fail, warn, or be ignored.

Blocking filesystem and archive operations run through spawn_blocking; join failure is contextualized separately from the I/O error returned by the closure. Distributed compilation may fall back locally when policy permits, but authentication, packaging, compiler, and cache failures remain distinct.

Server shutdown has two phases. Explicit signal, shutdown RPC, or idle timeout stops accepting connections. Then WaitUntilZero observes connection ownership drain, capped by a ten-second deadline. The process does not pretend that closing the listener completed active compilations, nor does it surrender liveness indefinitely.