The HTTP/1.1 unix-socket driver read the response with read_to_string
(read to EOF). Firecracker's API server keeps the connection open and
does not honor Connection: close, so the very first PUT (/boot-source)
blocked forever — the guest never received /drives or InstanceStart.
The driver had only ever been exercised against a mock Vmm; its first
run against a real Firecracker (on an AWS bare-metal KVM host) surfaced
the hang immediately.
Fix: read only the HTTP status line (these endpoints answer 204 No
Content, no body) and set a 10s read timeout as a wedged-server safety
net. The four-PUT boot sequence now completes against a live server.
Also: drop the unused Instant import on the non-macOS attribution path
(Linux build warning).
Co-Authored-By: Claude Fable 5 <[email protected]>