Skip to content

(#299) [v0.10] fix(kv): drain accepted shards after client errors - #300

Merged
ArnavBalyan merged 1 commit into
openlake-project:mainfrom
Keda710:fix/kv-drain-shards-299
Oct 20, 2026
Merged

ArnavBalyan merged 1 commit into
openlake-project:mainfrom
Keda710:fix/kv-drain-shards-299

Conversation

@Keda710

@Keda710 Keda710 commented Oct 20, 2026

Copy link
Copy Markdown
Contributor

Fixes #299.

Change

  • Stop dispatching new shards after the first dispatch failure, while retaining receivers for shards already accepted.
  • Drain every retained completion receiver, recording a disconnected channel as an error instead of returning early.
  • Return the first error after draining, while preserving successful result ordering.
  • Add mock-protocol tests for a later dispatch failure, a disconnected completion channel, and the normal success path.

Validation

  • cargo test --offline --locked -p openlake_kv_client --lib client::tests:: (3 passed)
  • cargo clippy --offline --locked --workspace --all-targets -- -D warnings (passed)
  • cargo fmt --all -- --check (passed)
  • git diff --check (passed)

Full cargo test --workspace on macOS hits an existing PyO3 extension-library link error (Undefined symbols for architecture arm64 for Python symbols). The Rust library tests above pass.

@ArnavBalyan ArnavBalyan changed the title fix(kv): drain accepted shards after client errors (#299) [v0.10] fix(kv): drain accepted shards after client errors Oct 20, 2026
@ArnavBalyan
ArnavBalyan merged commit 0e347f8 into openlake-project:main Oct 20, 2026
5 checks passed
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.

KV client returns shard errors intermittently waiting for long transfer operations

2 participants