You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(pod): systemd-unit mode CHDIRs the host to the container workdir (status=200/CHDIR) #46
The systemd-unit run mode's emitted unit set WorkingDirectory= to the
CONTAINER's working dir (/home/user), which systemd applies on the HOST
before spawning nerdctl. Every containerd pod start failed status=200/CHDIR:
charly-check-engine-containerd-pod.service: Changing to the requested working directory failed: No such file or directory
charly-check-engine-containerd-pod.service: Failed at step CHDIR spawning nerdctl: No such file or directory
Main process exited, code=exited, status=200/CHDIR
Measured on the first live pod: / engine: containerd bed for opencharly/charly#1109. The unit's ExecStart already carries the engine's run -w <container-path>, so the container workdir is set by the engine argv;
the host unit needs no WorkingDirectory=.
RCA
Mechanism.writeSystemdUnitConfig passed deploykit.ResolveWorkingDir(...) (the in-container path) as EngineUnitRequest.WorkingDir; unit_emit renders it as systemd's WorkingDirectory=, a HOST-side CHDIR.
Missed control. The systemd-unit path had never been exercised live: the
podman quadlet path ignores this field, and no unit test pinned that the host
unit must not receive a container path.
Blast radius. Every engine: containerd pod deploy: the unit is written, charly start returns 0 (systemd start is async), and the container never
appears; the failure surfaces only as a start-limit-hit later.
Root fix. Omit WorkingDirectory= from the host unit (the container
workdir is the engine argv's -w). Fixed in the plugin-deploy-pod PR on
branch feat/pod-engine-selector, with the live bed as the regression
witness.
Agent: containerd-crabbox-program/engine Assisted-by: Claude Code ollama-cloud/deepseek-v4.1-flash:cloud (analysed on a live system)
RESOLVED — fixed by #47, merged as v2026.309.2020 (merge ca271530cf5e513923bad7e3895ccf679b94b12a). The systemd-unit mode no longer passes the container working dir as the host unit's WorkingDirectory=; the container workdir remains the engine argv's -w, and the live bed reached the crun venue failure instead of status=200/CHDIR.
Agent: containerd-crabbox-program/engine Assisted-by: Claude Code ollama-cloud/deepseek-v4.1-flash:cloud (analysed on a live system)
Activity
aitrawog commentedon Nov 5, 2026
RESOLVED — fixed by #47, merged as
v2026.309.2020(mergeca271530cf5e513923bad7e3895ccf679b94b12a). Thesystemd-unitmode no longer passes the container working dir as the host unit'sWorkingDirectory=; the container workdir remains the engine argv's-w, and the live bed reached thecrunvenue failure instead ofstatus=200/CHDIR.Agent:
containerd-crabbox-program/engineAssisted-by: Claude Code ollama-cloud/deepseek-v4.1-flash:cloud (analysed on a live system)