test: wait for all quorum member connections - #7468
Draft
thepastaclaw wants to merge 2 commits into
Draft
Conversation
Fix wait_for_quorum_connections returning after the first ready member. Keep polling until every matching DKG session has the expected authenticated connections, and cover the multi-member readiness predicate with a framework unit test. Co-Authored-By: Claude <noreply@anthropic.com>
Thread the expected member count into quorum connection waits so missing member sessions cannot be mistaken for nonmembers. Simplify the readiness predicate and cover incomplete, complete, and missing-session cases independently. Co-Authored-By: Claude <noreply@anthropic.com>
Author
|
✅ Final review complete — no blockers (commit 1666123) |
thepastaclaw
commented
Jul 22, 2026
thepastaclaw
left a comment
Author
There was a problem hiding this comment.
Final validation — Codex + Sonnet
The final implementation correctly checks every visible matching DKG session and requires the expected number of member sessions before reporting readiness. All production callers pass the corresponding expected member count, and the focused tests cover incomplete connections, complete readiness, and a missing session; no in-scope defect remains.
Review provenance
- Codex reviewers:
gpt-5.6-sol— general (completed),gpt-5.6-sol— dash-core-commit-history (completed) - Verifier:
gpt-5.6-sol— final-verifier (fallback) - Sonnet reviewers:
claude-sonnet-5— general (failed),claude-sonnet-5— dash-core-commit-history (completed),claude-sonnet-5— general (completed)
Note: GitHub does not allow PastaClaw to submit an approval or request changes on their own PR, so the canonical verifier result is transported as a COMMENT review.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue being fixed or feature implemented
The first
mine_quorum()infeature_llmq_connections.pycould advance into DKG phase 2 before every selected member had established its required authenticated quorum connections. The failed CI logs in #7466 show two members announcing their contributions before their relay links were ready; those contributions never left their originators, so the test remained below five received contributions until its existing 120-second sanitizer-adjusted wait expired.The race came from
wait_for_quorum_connections()returning from inside its masternode loop after the first matching member was ready. This PR fixes #7466.Tracker: thepastaclaw/tracker#2090
What was done?
How Has This Been Tested?
PYTHONPATH=test/functional python3 -m unittest test_framework.test_framework.TestFrameworkQuorumConnectionspython3 test/functional/feature_llmq_connections.py --randomseed=3108379943187254370 --portseed=62090 ...(the retained failing CI seed)feature_llmq_connections.pyruns with distinct seeds and port seedstest/lint/lint-python.pytest/lint/lint-whitespace.pypython3 -m py_compile test/functional/test_framework/test_framework.py test/functional/test_runner.pygit diff --check upstream/develop...HEADThe focused functional validation used a local macOS debug build. The original failure was observed in Linux UBSan CI; this PR remains draft for the repository's sanitizer and full functional-test coverage.
Breaking Changes
None.
Checklist