Detected server version is non-deterministic on Valkey since 3.4.0
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 35/100
Hướng nghiên cứu
The version comes from ServerEndPoint.Version, which is set by whichever handshake reply (INFO redis_version or HELLO version) is processed last; start by reading the code that handles those two replies during connection setup. Run the repro against valkey/valkey:9.1.2 in Docker to see the version change between connections. Done when the detected version is the same on every connection and LockReleaseAsync no longer sends DELEX to Valkey 9.1.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Description
Since 3.4.0, ServerEndPoint.Version depends on which handshake reply is processed last: INFO (redis_version) or HELLO (version).
On Redis both values are identical, so nothing shows.
On Valkey they differ (redis_version:7.2.4 in INFO, version: 9.1.2 in HELLO).
So the detected version changes from one connection to another, and commands gated on Redis versions get used on a server that does not support them.
For exemple, one consequence: LockRelease sometimes sends DELEX, which Valkey 9.1 does not know, and the lock is not released.
Environment
- StackExchange.Redis 3.4.5
- Valkey 9.1
- .NET 10
Repro
docker run --rm -d -p 6379:6379 valkey/valkey:9.1.2
#:package [email protected]
using StackExchange.Redis;
for (int i = 1; i <= 50; i++)
{
using ConnectionMultiplexer muxer = await ConnectionMultiplexer.ConnectAsync("localhost:6379");
IDatabase db = muxer.GetDatabase();
string key = $"lock:{i}";
await db.LockTakeAsync(key, "token", TimeSpan.FromSeconds(30));
await Task.Delay(100);
Console.Write($"#{i} server.Version={muxer.GetServers()[0].Version}: ");
try
{
Console.WriteLine($"released={await db.LockReleaseAsync(key, "token")}");
}
catch (RedisServerException ex)
{
Console.WriteLine(ex.Message);
}
await db.KeyDeleteAsync(key);
}
- Ngôn ngữ chính
- C#
- Star
- 6.2k
- Fork
- 1.6k
- Merge trung bình
- 2 ngày 3 giờ
- Pull request đã merge (30 ngày)
- 28
Chuẩn bị môi trường
Khởi chạy dev container của dự án ngay trên trình duyệt, bằng tài khoản GitHub của bạn.
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của StackExchange/StackExchange.Redis
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 78/100
StackExchange/StackExchange.Redis#3249 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
HotKeysClusterTests.CanUseClusterFilter skips intermittently, hiding the assertions it exists forĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
StackExchange/StackExchange.Redis#3239 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
StackExchange/StackExchange.Redis#3240 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
RedisValue equality treats "1,000", "(5)" and " 5 " as numbers, via NumberStyles.AnyCó thể đã có người làm @banlor đã nhận 25 ngày trước. Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 35/100
StackExchange/StackExchange.Redis#3233 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Failover: support single configuration-string connectCó thể đã có người làm @mgravell đã nhận 79 ngày trước. Đang mở⚙️ area:failover
StackExchange/StackExchange.Redis#3147 · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của StackExchange/StackExchange.Redis
Issue tương tự
-
Wrong values of Kernel32.FileShare.Delete and Kernel32.FileAttributes.PosixSemanticsCó thể đã có người làm @ElectLive đã nhận hôm nay. Đang mởbug good first issue help wanted
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 83/100
ForNeVeR/TruePath#241 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 66/100
files-community/Files#19047 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
area:frontend bug FE hotspot:css P3
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
klasolsson81/jobbliggaren#2175 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
needs-triage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 71/100
elsa-workflows/elsa-foundation#2965 ·
Maintainer thường phản hồi trong vòng 1 ngày