Detected server version is non-deterministic on Valkey since 3.4.0
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
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.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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);
}
- Vorherrschende Sprache
- C#
- Sterne
- 6.2k
- Forks
- 1.6k
- Ø Merge
- 9 Std. 42 Min.
- Gemergte PRs (30 T.)
- 51
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus StackExchange/StackExchange.Redis
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
StackExchange/StackExchange.Redis#3249 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
HotKeysClusterTests.CanUseClusterFilter skips intermittently, hiding the assertions it exists forOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
StackExchange/StackExchange.Redis#3239 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Duplicate Pub/Sub messages after Redis Sentinel failoverEvtl. vergeben @vkyow hat das heute übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 25/100
StackExchange/StackExchange.Redis#3336 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 1-2 Tage Anfängerfreundlichkeit 8/100
StackExchange/StackExchange.Redis#3326 · 4 Kommentare · 39 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
Feature Request: Add Automatic ForceReconnect Recovery for Persistent ConnectionMultiplexer Connection FailuresEvtl. vergeben Ein verknüpfter Pull Request ist offen oder bereits gemergt. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 38/100
StackExchange/StackExchange.Redis#3309 · 9 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in StackExchange/StackExchange.Redis
Ähnliche Issues
-
Playground selection bar: comes back after Apply or scrolling while focus is in the Markdown paneOffen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
sillsdev/SIL.TextEditing#175 ·
Maintainer antworten meist innerhalb von 1 Tag
-
needs attention untriaged
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet#3666 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
MicrosoftLearning/eShopOnWeb#466 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
stryker-mutator/stryker-net#3974 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
Maintainer antworten meist innerhalb von 1 Tag