StackExchange / StackExchange/StackExchange.Redis
Need to understand Redis timeout exceptions
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 6.2k
- Forks
- 1.6k
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 43
Description
Hi I am using Redis nuget library version 2.7.4. We are seeing Redis timeout exceptions and its not clear what's the reason behind it.
Below are the errors that we are seeing on Production.
Timeout performing SET (10000ms), next: UNWATCH, inst: 0, qu: 0, qs: 0, aw: False, bw: SpinningDown, rs: ReadAsync, ws: Idle, in: 39, last-in: 0, cur-in: 0, sync-ops: 46187, async-ops: 1, serverEndpoint: xxx, conn-sec: 830305.23, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: xxxSE.Redis-v2.7.4.20928), IOCP: (Busy=7,Free=93,Min=20,Max=100), WORKER: (Busy=18,Free=82,Min=30,Max=100), v: 2.7.4.20928 (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 StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server, T defaultValue) in //src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2106
at StackExchange.Redis.RedisDatabase.LockTake(RedisKey key, RedisValue value, TimeSpan expiry, CommandFlags flags) in //src/StackExchange.Redis/RedisDatabase.cs:line 1436
Another error,
The message timed out in the backlog attempting to send because no connection became available, command=EXEC, timeout: 10000, outbound: 0KiB, inbound: 0KiB, next: MULTI, inst: 3, qu: 0, qs: 0, aw: True, bw: WritingMessage, rs: ReadAsync, ws: Flushed, in: 0, last-in: 25, cur-in: 0, sync-ops: 46185, async-ops: 1, serverEndpoint: xxx conn-sec: 830294.4, aoc: 0, mc: 1/1/0, mgr: 10 of 10 available, clientName: xxx(SE.Redis-v2.7.4.20928), IOCP: (Busy=5,Free=95,Min=20,Max=100), WORKER: (Busy=17,Free=83,Min=30,Max=100), v: 2.7.4.20928 (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 StackExchange.Redis.ConnectionMultiplexer.ExecuteSyncImpl[T](Message message, ResultProcessor`1 processor, ServerEndPoint server, T defaultValue) in //src/StackExchange.Redis/ConnectionMultiplexer.cs:line 2106
at StackExchange.Redis.RedisTransaction.Execute(CommandFlags flags) in //src/StackExchange.Redis/RedisTransaction.cs:line 50
at StackExchange.Redis.RedisDatabase.LockRelease(RedisKey key, RedisValue value, CommandFlags flags) in /_/src/StackExchange.Redis/RedisDatabase.cs:line 1417
@NickCraver , Can you please provide some insight. Thanks.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the linked Timeouts guidance, then inspect the reported paths in ConnectionMultiplexer.ExecuteSyncImpl, RedisDatabase.LockTake/LockRelease, and RedisTransaction.Execute. The issue provides no reproduction beyond production logs, requested code change, or acceptance criteria, so a defined done state is not established.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- csharp, redis
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100