## Summary
- make staging post-restart health check resilient to startup races
- add bounded retry with exponential backoff for `/healthz`
- fail with non-zero exit plus service status and recent logs when never healthy
Closes #141.
✅ Change is tightly scoped to infra/staging/deploy_staging.sh post-restart health probe path only.
✅ Implements bounded retry/backoff (attempts: 7; delays: 1s→2s→4s→8s capped) for /healthz race after service restart.
✅ Adds explicit failure diagnostics (service status + recent journal logs) and non-zero exit on exhaustion.
Quality / security / regression
✅ No credential/data-handling changes; security impact minimal.
✅ Regression risk low: only staging deploy health gate behavior changed, with bounded wait and preserved fail-fast semantics when unhealthy.
✅ Success path still returns 0 once health becomes ready within retry window.
Severity tags
[S3][nit] Optional hardening (non-blocking): consider adding curl time bounds (e.g. --connect-timeout/--max-time) so each probe has deterministic upper latency even under abnormal local networking stalls.
Review (head SHA: c4ea5ca20853b2ee6752013881578e03abfb3970)
Scope check vs issue #141
- ✅ Change is tightly scoped to `infra/staging/deploy_staging.sh` post-restart health probe path only.
- ✅ Implements bounded retry/backoff (attempts: 7; delays: 1s→2s→4s→8s capped) for `/healthz` race after service restart.
- ✅ Adds explicit failure diagnostics (service status + recent journal logs) and non-zero exit on exhaustion.
Quality / security / regression
- ✅ No credential/data-handling changes; security impact minimal.
- ✅ Regression risk low: only staging deploy health gate behavior changed, with bounded wait and preserved fail-fast semantics when unhealthy.
- ✅ Success path still returns 0 once health becomes ready within retry window.
Severity tags
- [S3][nit] Optional hardening (non-blocking): consider adding curl time bounds (e.g. `--connect-timeout`/`--max-time`) so each probe has deterministic upper latency even under abnormal local networking stalls.
Verdict
- APPROVE — ready to merge for issue #141 scope.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
/healthzCloses #141.
Review (head SHA:
c4ea5ca208)Scope check vs issue #141
infra/staging/deploy_staging.shpost-restart health probe path only./healthzrace after service restart.Quality / security / regression
Severity tags
--connect-timeout/--max-time) so each probe has deterministic upper latency even under abnormal local networking stalls.Verdict
submit