fix: \sleep 1\ polling loop violates AGENTS.md 'never use fixed delays' principle (#878)
Replace fixed \`sleep 1\` in the container teardown poll loop with exponential backoff (100ms → 200ms → … → 2000ms cap). The 30s hard timeout is preserved. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
bce6d5ddce
commit
e2554eb844
1 changed files with 4 additions and 2 deletions
|
|
@ -289,15 +289,17 @@ PYEOF
|
|||
'{completed: $arr, last_updated: now | todate}' > "$PROGRESS_FILE"
|
||||
log "DONE $seed_name"
|
||||
|
||||
# 6. Teardown — poll until all containers have exited (no fixed sleep)
|
||||
# 6. Teardown — poll until all containers have exited (exponential backoff, no fixed delay)
|
||||
cd "$REPO_ROOT" && docker compose down -v 2>/dev/null || true
|
||||
_deadline=$(( $(date +%s) + 30 ))
|
||||
_backoff_ms=100
|
||||
while [[ -n "$(docker compose ps --quiet 2>/dev/null)" ]]; do
|
||||
if [[ $(date +%s) -ge $_deadline ]]; then
|
||||
log "WARNING: containers still present after 30s — proceeding anyway"
|
||||
break
|
||||
fi
|
||||
sleep 1
|
||||
sleep "$(awk "BEGIN{printf \"%.1f\", $_backoff_ms / 1000}")"
|
||||
(( _backoff_ms = _backoff_ms * 2 > 2000 ? 2000 : _backoff_ms * 2 ))
|
||||
done
|
||||
done
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue