In half-open, Allow() returns false while CooldownRemaining() returns 0 (internal/delivery/circuit_breaker.go:71-73, :85-87), so circuitBreakerBlock reschedules with delay 0 (internal/delivery/target_http.go:145-165): every queued task for the target spins through retryCh with a DB status write per iteration for the whole probe window (up to 30s).
Done: blocked tasks wait a non-zero delay (or until the probe resolves); no per-spin DB writes; test covers half-open with queued tasks.
From audit #303 (significant).
In half-open, `Allow()` returns false while `CooldownRemaining()` returns 0 (`internal/delivery/circuit_breaker.go:71-73`, `:85-87`), so `circuitBreakerBlock` reschedules with delay 0 (`internal/delivery/target_http.go:145-165`): every queued task for the target spins through `retryCh` with a DB status write per iteration for the whole probe window (up to 30s).
Done: blocked tasks wait a non-zero delay (or until the probe resolves); no per-spin DB writes; test covers half-open with queued tasks.
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.
From audit #303 (significant).
In half-open,
Allow()returns false whileCooldownRemaining()returns 0 (internal/delivery/circuit_breaker.go:71-73,:85-87), socircuitBreakerBlockreschedules with delay 0 (internal/delivery/target_http.go:145-165): every queued task for the target spins throughretryChwith a DB status write per iteration for the whole probe window (up to 30s).Done: blocked tasks wait a non-zero delay (or until the probe resolves); no per-spin DB writes; test covers half-open with queued tasks.