Skip to content

fix: watchdog recycles the enclave when Gemma is wedged (v0.7.7)#5

Merged
louis030195 merged 1 commit into
mainfrom
fix/gemma-watchdog-self-exit
Jun 17, 2026
Merged

fix: watchdog recycles the enclave when Gemma is wedged (v0.7.7)#5
louis030195 merged 1 commit into
mainfrom
fix/gemma-watchdog-self-exit

Conversation

@louis030195

Copy link
Copy Markdown
Contributor

Problem

gemma4-e4b was down ~125h continuously (gemma_down_seconds climbing monotonically), CVM never recycled.

v0.7.6 supervises vLLM (good) and flips /healthz to 503 once Gemma is down past GEMMA_UNHEALTHY_AFTER (900s) — but it relied on Tinfoil recycling the container on that unhealthy healthcheck. Docker restart: always only acts on container EXIT, not on an unhealthy healthcheck. So the supervisor restarted vLLM in-container forever, /healthz 503'd forever, and nothing recycled the CVM to clear the wedged GPU. /filter stayed green the whole time, hiding it.

Fix

Add an in-container watchdog that polls /healthz and, on a sustained 503 (3×30s past the 900s policy), exits PID 1 — turning the existing 503 verdict into the container exit restart: always honors. Recycle clears wedged GPU state a process restart can't. /filter stays up until the instant of recycle; transient vLLM crashes still heal in-container via the supervisor (no recycle).

  • entrypoint.sh: watchdog loop + updated escalation-ladder docs
  • tinfoil-config.yml: bump image → 0.7.7 (digest pinned after build), note watchdog drives the recycle

bash -n clean; probe one-liner validated (200 on live port, 0 on dead).

Deploy

Build 0.7.7 → pin digest → tag v0.7.7 → deploy in Tinfoil dashboard (also clears the current outage). 🤖 Generated with Claude Code

…recycles (v0.7.7)

v0.7.6 relied on Tinfoil recycling the container when /healthz went 503, but `restart: always` only fires on container EXIT, not on an unhealthy healthcheck — so a wedged vLLM sat down ~5 days while /filter stayed green and gemma_down_seconds climbed unbounded. Add an in-container watchdog that exits PID 1 after a sustained /healthz 503 (3x30s past the 900s gemma-down policy), turning the existing /healthz verdict into the container exit restart:always honors. Bump image to 0.7.7.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@louis030195 louis030195 merged commit 29bf269 into main Jun 17, 2026
3 checks passed
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