Skip to content

Pod completes instantly (exitCode=0) with zero container startup — container spec silently dropped #77

Description

@dndungu

Summary

POST /api/v1/pods returns success and the pod transitions pending -> running -> completed (exitCode=0) within ~5 seconds, but the actual container defined in spec.containers[] is never created or started. Only the pod's infra/pause container exists. podman logs <pod>-<container> immediately after fails with "no such container" — because it was never created, not because it exited and was cleaned up.

Evidence (from spark's own journald output, --root /var/lib/containers/storage)

INFO pod scheduled pod=sire-dgx-runner-v2
INFO creating pod cmd=podman args="[pod create --name sire-dgx-runner-v2 --network spark-net]"
INFO pod running pod=sire-dgx-runner-v2
INFO started log streaming pod=sire-dgx-runner-v2
INFO log stream goroutine exited pod=sire-dgx-runner-v2
INFO log streaming ended pod=sire-dgx-runner-v2
INFO inspecting pod cmd=podman args="[pod inspect sire-dgx-runner-v2 --format {{.State}}]"
INFO pod exited pod=sire-dgx-runner-v2 exitCode=0
INFO pod completed pod=sire-dgx-runner-v2

Notice there is no podman run/podman container create invocation anywhere in this sequence for the actual workload container — only podman pod create (the pod shell). The pod has nothing running inside it, so it "completes" immediately.

Manifest that triggered this

apiVersion: v1
kind: Pod
metadata:
  name: sire-dgx-runner-v2
spec:
  restartPolicy: Always
  containers:
  - name: runner
    image: ghcr.io/actions/actions-runner:latest
    command: ["/bin/bash", "-c"]
    args: ["./config.sh --url https://github.com/... --token *** --name sire-dgx-runner --labels self-hosted,linux,arm64,dgx --unattended --replace && ./run.sh"]
    resources:
      limits:
        cpu: "2"
        memory: 4Gi

Submitted as YAML with Content-Type: application/yaml.

What's confusing / notable

  • The identical shape of manifest (single container, command + args both set) worked correctly earlier in the same session — the container started, registered as a GitHub Actions runner, and processed at least one job before an unrelated network blip took it down. This suggests an intermittent failure in container creation, not a hard manifest-parsing bug.
  • A minimal single-container pod with only command (no separate args) -- image: docker.io/library/alpine:latest, command: ["sleep", "60"] -- worked fine and stayed running for the full duration, in the same session, same host, similar resource request.
  • A 2-container pod (runner + docker.io/postgres:17-alpine sidecar) hit the exact same "pod exits immediately, zero container startup" symptom.
  • Two separate podman storage roots exist on this host (spark's own service runs podman --root /var/lib/containers/storage; an interactive user's rootless podman session is a completely separate storage/namespace) -- this cost me significant debugging time before I found the right one to inspect. Worth documenting prominently in spark's own docs/README for anyone SSHing in to debug a pod, since podman ps/podman images run as a normal user shows nothing relevant.
  • GET /api/v1/pods/{name}/logs and GET /api/v1/pods/{name}/events both returned empty/minimal output for these failed pods, making the API itself unhelpful for diagnosing this -- had to go to journald.

Repro rate

Reproduced 3 times in a row (two single-container runner attempts under different pod names, one 2-container runner+postgres attempt), after one earlier successful run of the same shape. Not yet root-caused on the spark side, but consistently pod-create-succeeds / container-create-never-happens / pod reports completed exitCode=0 with no real workload having run.

Environment

  • Host: aitopatom-bfc8 (the DGX Spark host referenced in the /spark skill doc), Spark v1.16.2 (per /healthz).
  • podman backend, --network-backend netavark, --db-backend sqlite.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions