Skip to content

RedisConnectionException when using DistributedLock.Redis #259

@steingran

Description

@steingran

Hi, we just started using DistributedLock.Redis, and on my developer machine it works great. But in our development environment on AWS we get this one pretty frequently (9300 times in 3 days):

StackExchange.Redis.RedisConnectionException: UnableToConnect (None, 0-read, last-recv: 0) on dev-ec-valkey-abc.serverless.eun1.cache.amazonaws.com:6379/Interactive, Flushed/ReadAsync, last: ECHO, origin: ResetNonConnected, outstanding: 12, last-read: 5s ago, last-write: 5s ago, unanswered-write: 5s ago, keep-alive: 60s, state: ConnectedEstablishing, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.7.33.41805
StackExchange.Redis.RedisConnectionException: The message timed out in the backlog attempting to send because no connection became available (5000ms) - Last Connection Exception: UnableToConnect (None, 0-read, last-recv: 0) on dev-ec-valkey-abc.serverless.eun1.cache.amazonaws.com:6379/Interactive, Flushed/ReadAsync, last: ECHO, origin: ResetNonConnected, outstanding: 12, last-read: 5s ago, last-write: 5s ago, unanswered-write: 5s ago, keep-alive: 60s, state: ConnectedEstablishing, mgr: 10 of 10 available, last-heartbeat: never, global: 0s ago, v: 2.7.33.41805, command=EVAL, timeout: 5000, inst: 0, qu: 2, qs: 12, aw: False, bw: CheckingForTimeout, rs: ReadAsync, ws: Idle, in: 0, in-pipe: 0, out-pipe: 0, last-in: 0, cur-in: 0, sync-ops: 0, async-ops: 9062, serverEndpoint: dev-ec-valkey-abc.serverless.eun1.cache.amazonaws.com:6379, conn-sec: 20, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: ip-10-24-0-62(SE.Redis-v2.7.33.41805), IOCP: (Busy=0,Free=1000,Min=1,Max=1000), WORKER: (Busy=1,Free=32766,Min=2,Max=32767), POOL: (Threads=4,QueuedItems=0,CompletedItems=2036620,Timers=22), v: 2.7.33.41805 (Please take a look at this article for some common client-side issues that can cause timeouts: https://stackexchange.github.io/StackExchange.Redis/Timeouts)
at async Task RedisDatabase.ScriptEvaluateAsync(string script, RedisKey[] keys, RedisValue[] values, CommandFlags flags)() in //src/StackExchange.Redis/RedisDatabase.cs:line 1551
at async Task RedLockHelper.AsBooleanTask(Task redisResultTask)() in /
/src/DistributedLock.Redis/RedLock/RedLockHelper.cs:line 63
System.AggregateException: A Task's exception(s) were not observed either by Waiting on the Task or accessing its Exception property. As a result, the unobserved exception was rethrown by the finalizer thread.

Note that we use Valkey, not Redis.

Our code looks like this:

var semaphore = new RedisDistributedSemaphore(semaphoreKey, MaxConcurrentRequests, redis.GetDatabase());
IDistributedSynchronizationHandle? handle = await semaphore.TryAcquireAsync(TimeSpan.FromSeconds(SemaphoreTimeoutSeconds), cancellationToken);

Where the 'redis' variable is of type IConnectionMultiplexer.

What could be the reason for these exceptions?

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions