fix(worker): ruim /tmp op tussen iteraties en meld een volle /tmp (ISS-14) #90
No reviewers
Labels
No labels
severity/s3
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
janpeter/scrum4me-docker!90
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/tmp-sweep"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Fixes max2 ISS-14.
Probleem
De PR_REVIEW van Ops-dashboard#260 bleef opnieuw starten. De codex-worker op max2 faalde elke geclaimde job met
ENOSPCbij/tmp/job-<id>/payload.json./tmpis een tmpfs van 2 GB en zat vol met PR-clones die de agent zelf had gemaakt (/tmp/pr-review-<job>: 1,1 GB,/tmp/pr95-review: 514 MB, metnode_modules). Niets ruimde die op. De DB toonde alleen "agent did not complete job within 2 attempts".Fix
bin/tmp-sweep.sh:/tmp, behalvetsx-*,node-compile-cacheen verborgen entries;chmod -R u+rwX: de codex-sandbox laat read-only bomen achter, en root kan ze niet wissen (cap_drop ALL);TMP_PRESSUREals/tmpdaarna bovenAGENT_TMP_WARN_PCT(80) blijft;run-agent.sh: roept het aan op elke plek waarlog-cleanup.shdraait (start, overload, na elke iteratie). Er loopt dan geen job.health-server.js:/healthgeeft 503tmp-lowzolang de marker bestaat.Bewijs
__tests__/tmp-sweep.test.ts: 5 gevallen, eerst rood en daarna groen. De volledige suite geeft 208/208; dezelfde 13 dispatch-suites laden lokaal niet, net als op master.scrum4me-agent-codex:local-image met read-only root, tmpfs/tmp,cap_drop ALL,no-new-privilegesen-u agent:rmop de read-only boom faalt (zoals in productie);tmp-sweep.shwist alles behalve de caches (30% → 0%);TMP_PRESSUREop 90.Uitrol
Image-rebuild en redeploy van de workers op beide hosts:
redeploy_all_workersop max2,redeploy_allofupdate_mcp_workerop 154. Beide ontsleutelen eerst de worker-DB-env, en de worker-recreate op 154 bounce't postgres niet meer (ISS-40).🤖 Generated with Claude Code
/tmp is een kleine RAM-tmpfs (agent-codex: 2 GB). De codex-agent kloont er zelf PR's in (/tmp/pr-review-<job> mét node_modules) en niets ruimde dat op. Na ~10 uur reviews was /tmp vol en faalde elke job op ENOSPC bij /tmp/job-<id>/payload.json. De DB toonde dan alleen "agent did not complete job within 2 attempts" en de job ging telkens opnieuw rond (Ops-dashboard#260, 2026-09-28). - bin/tmp-sweep.sh: - wist tussen iteraties alles van de agent-gebruiker direct onder /tmp, behalve tsx-*, node-compile-cache en verborgen entries; - doet eerst `chmod -R u+rwX`, omdat de codex-sandbox read-only bomen achterlaat en root in de container zonder DAC_OVERRIDE niets kan wissen; - schrijft TMP_PRESSURE als /tmp daarna nog boven AGENT_TMP_WARN_PCT (default 80) zit; - faalt nooit. - run-agent.sh roept het aan op elke plek waar log-cleanup.sh draait: bij de start, na een overload en na elke iteratie. - health-server.js geeft /health 503 `tmp-low` zolang TMP_PRESSURE bestaat. Tests: __tests__/tmp-sweep.test.ts, 5 gevallen, eerst rood en daarna groen. De volledige suite geeft 208/208; dezelfde 13 dispatch-suites laden niet lokaal, net als op master. Bewezen in een wegwerpcontainer van het live codex-image met read-only root, tmpfs /tmp, cap_drop ALL, no-new-privileges en -u agent: een gewone rm faalt, de sweep wist alles behalve de caches, en de marker komt op 90%. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>