Redis Transport 4.3.3
• Damian Maclennan
releases transports redis
4.3.3 of the Redis transport is out, fixing a thread pool starvation issue that was causing intermittent StackExchange.RedisTimeoutException under load.
What changed
The transport polled queues with synchronous LPOP calls. On .NET hosts with a low thread pool minimum (common in containers and single-vCPU deployments), enough concurrent sync calls would saturate the pool. New calls queued up, operations missed their timeout window, and StackExchange.Redis threw:
Timeout performing LPOP (5000ms), inst: 0, qu: 0, qs: 4,
bw: SpinningDown, sync-ops: 816, async-ops: 0
4.3.3 converts queue polling to the async StackExchange.Redis APIs, which frees up threads during I/O and stops the pool from getting starved.
Upgrading
dotnet add package Nimbus.Transports.Redis --version 4.3.3
No config changes needed.