Run git pull first in update.sh, not mid-script #48

Merged
haylan merged 1 commits from fix-update-sh-pull-order into main 2026-09-06 19:40:10 +00:00
Owner

Real failure hit right after #47 merged: running ./scripts/update.sh on the server produced

==> resolving ComfyUI host GID/UID
COMFYUI_VIDEO_GID: already set, skipping.
...
==> validating compose config
error while interpolating services.llama-server.group_add.[]: required variable HOST_VIDEO_GID is missing a value

Root cause: git pull ran in the middle of the old script, after the GID-resolution step. The script executed the old GID logic first (found the old COMFYUI_VIDEO_GID/COMFYUI_RENDER_GID names, since .env still had them), then git pull swapped every file on disk out from under the still-running script — including docker-compose.yml, now requiring HOST_VIDEO_GID/HOST_RENDER_GID — but the resolution step that would populate those had already run and finished under the old code, and nothing re-ran it. A self-updating script isn't atomic against its own file changing mid-run.

Fix: move git pull to the very first thing the script does, so every execution is consistently either fully old or fully new code — never a mix.

bash -n and docker compose config -q both validated.

Refs #5

🤖 Generated with Claude Code

https://claude.ai/code/session_01MrnMEdzeQzqZE5soVEXPCx

Real failure hit right after #47 merged: running `./scripts/update.sh` on the server produced ``` ==> resolving ComfyUI host GID/UID COMFYUI_VIDEO_GID: already set, skipping. ... ==> validating compose config error while interpolating services.llama-server.group_add.[]: required variable HOST_VIDEO_GID is missing a value ``` Root cause: `git pull` ran in the *middle* of the old script, after the GID-resolution step. The script executed the old GID logic first (found the old `COMFYUI_VIDEO_GID`/`COMFYUI_RENDER_GID` names, since `.env` still had them), *then* `git pull` swapped every file on disk out from under the still-running script — including `docker-compose.yml`, now requiring `HOST_VIDEO_GID`/`HOST_RENDER_GID` — but the resolution step that would populate those had already run and finished under the old code, and nothing re-ran it. A self-updating script isn't atomic against its own file changing mid-run. Fix: move `git pull` to the very first thing the script does, so every execution is consistently either fully old or fully new code — never a mix. `bash -n` and `docker compose config -q` both validated. Refs #5 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_01MrnMEdzeQzqZE5soVEXPCx
haylan added 1 commit 2026-09-06 19:38:35 +00:00
Real failure on the server after #47 merged: the old GID-resolution
code ran (found the old COMFYUI_VIDEO_GID/COMFYUI_RENDER_GID vars
"already set"), then git pull swapped every file on disk out from
under the still-running script — including docker-compose.yml, now
requiring HOST_VIDEO_GID/HOST_RENDER_GID — but the resolution step
that would populate those had already run under the old code and
never re-ran. compose validation then failed on the new required
vars that were never set.

A self-updating script isn't atomic against its own file changing
mid-run. Move git pull to the very first thing the script does, so
every run is consistently either fully old or fully new code, never
a mix.

bash -n and docker compose config -q both validated.
haylan merged commit 63938e95c9 into main 2026-09-06 19:40:10 +00:00
haylan deleted branch fix-update-sh-pull-order 2026-09-06 19:40:10 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: haylan/LLM-Server#48