Skip to content

Vector Set Migration Reliability Fixes#1704

Open
kevin-montrose wants to merge 8 commits intomainfrom
users/kmontrose/vectorSetMigrationReliabilityClean
Open

Vector Set Migration Reliability Fixes#1704
kevin-montrose wants to merge 8 commits intomainfrom
users/kmontrose/vectorSetMigrationReliabilityClean

Conversation

@kevin-montrose
Copy link
Copy Markdown
Contributor

@kevin-montrose kevin-montrose commented Apr 15, 2026

Incorporates a number of separately reported fixes (for SessionParseState, GarnetServer disposal, InputHeader serialization), clearing ActiveThreadSession in more error paths, and forces minimum io and worker threadpool threads to 512 in cluster tests.

Each help reliability a bit, but threadpool hackery is a big win.

Additionally adds some extra error checking that, while not impactful for reliability, was helpful for eliminating possibilities while debugging.

dev targeting version is #1706

…e bits that 'matter'; which is Dispose order fixing, SessionParseState fixing, and TLS disabling
Copilot AI review requested due to automatic review settings April 15, 2026 21:06
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Note

Copilot was unable to run its full agentic suite in this review.

Improves reliability of vector set migration and related infrastructure by fixing serialization length calculations, tightening migration error handling, adjusting server disposal ordering, and updating cluster test setup to better isolate TLS-related migration flakiness.

Changes:

  • Fixes incorrect byte-count returns in SessionParseState and InputHeader serialization/deserialization.
  • Reorders GarnetServer disposal phases to dispose network servers before storage provider shutdown.
  • Adds failure detection/logging to migration scan/transmit flow and introduces test hooks (TLS toggle + increased threadpool minimums).

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
test/Garnet.test.cluster/VectorSets/ClusterVectorSetTests.cs Adds threadpool min threads tweak and a TLS toggle parameter for cluster setup used by tests.
libs/server/Resp/Parser/SessionParseState.cs Fixes return value sign for byte counts in buffer copy/deserialize logic.
libs/server/InputHeader.cs Fixes return value sign for byte counts in header deserialize logic.
libs/host/GarnetServer.cs Reorders disposal to dispose servers before provider shutdown.
libs/cluster/Server/Migration/MigrateSessionSlots.cs Makes migration tasks return bool, checks results, and handles TransmitSlots failures.
libs/cluster/Server/Migration/MigrateOperation.cs Adds failure handling/logging when TransmitSlots returns false.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread test/Garnet.test.cluster/VectorSets/ClusterVectorSetTests.cs Outdated
Comment thread libs/cluster/Server/Migration/MigrateSessionSlots.cs
Comment thread libs/cluster/Server/Migration/MigrateSessionSlots.cs
Comment thread libs/cluster/Server/Migration/MigrateOperation.cs
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants