Skip to content

37 fix minows partial streams - #43

Merged
JonKuqi merged 2 commits into
mainfrom
37-fix-minows-partial-streams
Aug 27, 2026
Merged

JonKuqi merged 2 commits into
mainfrom
37-fix-minows-partial-streams

Conversation

@JonKuqi

@JonKuqi JonKuqi commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator
  • Allowed MinoWS streaming RPCs to proceed when only part of the roster is reachable.
  • Kept unreachable participants as per-destination send errors so threshold protocols can decide whether enough nodes remain.
  • Added coverage for partial and fully unreachable rosters.

Closes #37

Problem

D-Voting and DELA ordering use threshold protocols that are expected to continue when the configured threshold allows node failures.

Before this PR, MinoWS returned an error as soon as any participant connection failed. That prevented the threshold layer from receiving a sender/receiver pair and applying its own failure threshold.

Fix

Stream now fails only when no participant connection could be opened:

If some participants are reachable, the stream is created over that subset. Sends to unavailable participants still return ErrNotPlayer, allowing the threshold protocol to count those failures normally.

Verification

go test ./mino/minows -count=1

The partial-connectivity and no-reachable-player tests pass, and all D-Voting integration and system tests pass with the updated DELA revision.

@JonKuqi JonKuqi self-assigned this Aug 25, 2026
@JonKuqi
JonKuqi requested a review from PascalinDe August 25, 2026 13:48
@JonKuqi
JonKuqi marked this pull request as ready for review August 25, 2026 13:49
@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from 08f5b05 to 7f1c55e Compare August 25, 2026 16:48

@PascalinDe PascalinDe left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

LGTM

@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from 7f1c55e to 954aa5a Compare August 26, 2026 15:04
@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from 954aa5a to 6e7350e Compare August 26, 2026 15:23
@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from 6e7350e to c77c47b Compare August 26, 2026 15:26
@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from c77c47b to 5bf0b87 Compare August 27, 2026 08:06
Base automatically changed from 36-fix-minows-shutdown-errors to main August 27, 2026 08:07
@JonKuqi
JonKuqi force-pushed the 37-fix-minows-partial-streams branch from 5bf0b87 to e9c7a3a Compare August 27, 2026 08:07
@JonKuqi
JonKuqi merged commit d290a12 into main Aug 27, 2026
5 of 8 checks passed
@JonKuqi
JonKuqi deleted the 37-fix-minows-partial-streams branch August 27, 2026 08:08
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.

MinoWS Stream fails threshold protocols when any participant is unreachable

2 participants