+1
−1
Loading
The `Evaluator` now expects the configured Redis object to respond
to `.with { |conn| }`, wrapping all Redis operations in a single
pool checkout. This ensures proper connection pool usage under
Puma's multi-threaded workers.
Previously the evaluator called `.incr` and `.expire` directly on
the redis object, which does not work with connection pool wrappers
like `Gitlab::Redis::RateLimiting` that require `.with` for pool
checkout.
A `PooledRedis` test helper wraps `instance_double(Redis)` and
`FakeRedis` with a `.with` interface for specs. All test files
updated to use `raw_redis` / `fake_redis` for the underlying
client and `redis` for the pool wrapper.
!274 (comment 3302529826)