Merge pull request 'fix: sleep 1 polling loop violates AGENTS.md 'never use fixed delays' principle (#878)' (#924) from fix/issue-878 into master

This commit is contained in:
johba 2026-03-17 17:46:45 +01:00
commit fb68595679

View file

@ -289,15 +289,17 @@ PYEOF
'{completed: $arr, last_updated: now | todate}' > "$PROGRESS_FILE" '{completed: $arr, last_updated: now | todate}' > "$PROGRESS_FILE"
log "DONE $seed_name" 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 cd "$REPO_ROOT" && docker compose down -v 2>/dev/null || true
_deadline=$(( $(date +%s) + 30 )) _deadline=$(( $(date +%s) + 30 ))
_backoff_ms=100
while [[ -n "$(docker compose ps --quiet 2>/dev/null)" ]]; do while [[ -n "$(docker compose ps --quiet 2>/dev/null)" ]]; do
if [[ $(date +%s) -ge $_deadline ]]; then if [[ $(date +%s) -ge $_deadline ]]; then
log "WARNING: containers still present after 30s — proceeding anyway" log "WARNING: containers still present after 30s — proceeding anyway"
break break
fi fi
sleep 1 sleep "$(awk "BEGIN{printf \"%.1f\", $_backoff_ms / 1000}")"
(( _backoff_ms = _backoff_ms * 2 > 2000 ? 2000 : _backoff_ms * 2 ))
done done
done done