Skip to content

fix(souslet): wire a real fetch image - every weight fetch was broken - #4

Merged
codemug merged 1 commit into
mainfrom
fix-souslet-fetch-image
Sep 2, 2026
Merged

fix(souslet): wire a real fetch image - every weight fetch was broken#4
codemug merged 1 commit into
mainfrom
fix-souslet-fetch-image

Conversation

@codemug

@codemug codemug commented Sep 2, 2026

Copy link
Copy Markdown
Owner

`cmd/souslet/main.go` constructed `fetch.Manager` without ever setting its `Image` field. Every fetch job souslet started ran against Docker's zero-value image reference - created successfully, then failed at start with `exec: "python3": executable file not found` (ExitCode 127, `docker ps` showing ``).

Found live tonight: the first-ever deploy needing a fetch through souslet (gemma-4-12b on aorus-ubuntu) failed with exactly this signature. Affected every souslet-managed node.

New `-fetch-image` flag, defaulting to the multi-arch MANIFEST-LIST digest for vllm/vllm-openai:v0.28.0 (covers both linux/arm64 and linux/amd64) rather than a single platform's own digest, since this fleet is multi-arch and one flag value has to work on either node.

Reviewed (single fast pass): safe to merge, no Critical/Important findings. Reviewer independently reproduced the exact failure signature against a real Docker Engine API call with Image:"" and independently verified the digest is genuinely a manifest list covering both platforms (not a single-arch sub-digest). go build/vet/test clean, 539/28 passing.

🤖 Generated with Claude Code

cmd/souslet/main.go constructed fetch.Manager without ever setting its
Image field, unlike cmd/sous-api/main.go's own -fetch-image flag
(defaulted and wired). Every fetch job souslet ever started ran against
Docker's zero-value image reference - the container was created with no
real rootfs, and its "python3" entrypoint failed with "executable file
not found in $PATH" (surfaced as ExitCode 127, docker ps showing
"<no image>"), not a python-level error.

Found live: the first-ever deploy of a model needing a fetch through the
new souslet path (unsloth/gemma-4-12b-it-NVFP4 on aorus-ubuntu) failed
with exactly this signature. This affected every souslet-managed node,
not just this one - asus-gx10's souslet has simply never yet needed to
fetch anything itself (its one deployed model's weights already exist on
disk from the single-node Sous era).

New -fetch-image flag, matching cmd/sous-api's own flag name/purpose, but
defaulting to the MANIFEST-LIST digest (not a single platform's own
digest, which is what sous-api's default is) - this fleet is multi-arch
(asus-gx10 arm64, aorus-ubuntu amd64) and one souslet binary/flag value
has to resolve correctly on either. Verified via `docker buildx imagetools
inspect vllm/vllm-openai:v0.28.0` that the chosen digest is genuinely the
list covering both platforms, not one arch's sub-manifest.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@codemug
codemug merged commit a6af32e into main Sep 2, 2026
1 check passed
@codemug
codemug deleted the fix-souslet-fetch-image branch September 2, 2026 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant