Skip to content

test: sync injected qsigshare in llmq signing test#7304

Draft
thepastaclaw wants to merge 1 commit intodashpay:developfrom
thepastaclaw:fix-7255-llmq-signing-p2p-sync
Draft

test: sync injected qsigshare in llmq signing test#7304
thepastaclaw wants to merge 1 commit intodashpay:developfrom
thepastaclaw:fix-7255-llmq-signing-p2p-sync

Conversation

@thepastaclaw
Copy link
Copy Markdown

Summary

  • Flush the direct P2P qsigshare injection in
    feature_llmq_signing.py --spork21 with sync_with_ping().
  • Keep the existing recovered-signature assertions and timeout unchanged while
    removing the async race before them.

Fixes #7255.

Validation

  • Passed locally on macOS arm64:

    ./test/functional/feature_llmq_signing.py --spork21 \
      --configfile=/Users/claw/Projects/dash/test/config.ini
  • Pre-PR code review gate passed with recommendation: ship.

@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 4, 2026

✅ No Merge Conflicts Detected

This PR currently has no conflicts with other open PRs.

@thepastaclaw
Copy link
Copy Markdown
Author

thepastaclaw commented May 4, 2026

✅ Review complete (commit 7c4f221)

@thepastaclaw
Copy link
Copy Markdown
Author

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: bb6a64d5-8e1c-4bf2-b067-02201534886d

📥 Commits

Reviewing files that changed from the base of the PR and between 4a0fd85 and 7c4f221.

📒 Files selected for processing (1)
  • test/functional/feature_llmq_signing.py

Walkthrough

This change modifies a functional test for LLMQ signing by adding a synchronization step in the spork21 recovery test path. After establishing a P2P connection to the quorum's recovery member, the test now explicitly calls sync_with_ping() before sending the msg_qsigshare message to ensure the connection is ready for message delivery.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Linked Issues check ❓ Inconclusive While the change addresses the symptom by adding sync_with_ping() to ensure connection readiness, it does not directly implement the root cause fixes suggested in issue #7255. Verify that sync_with_ping() adequately resolves the intermittent timeout without requiring additional timeout increases or timeout_factor scaling as suggested in #7255.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding sync_with_ping() to the qsigshare injection in the llmq signing test.
Description check ✅ Passed The description directly relates to the changeset, explaining the sync injection with qsigshare, the rationale for fixing the race condition, and validation results.
Out of Scope Changes check ✅ Passed The PR contains only a single targeted change (adding sync_with_ping call) directly related to fixing the timing issue in the spork21 test path.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
Review rate limit: 7/8 reviews remaining, refill in 7 minutes and 30 seconds.

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Author

@thepastaclaw thepastaclaw left a comment

Choose a reason for hiding this comment

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

Code Review

Single-line test fix adding sync_with_ping() after a direct qsigshare injection in feature_llmq_signing.py to eliminate a documented race against wait_for_sigs. Both reviewers converged that the change is minimal and correct. Only a stylistic nitpick remains.

Reviewed commit: 7c4f221

💬 1 nitpick(s)

Comment on lines 106 to +107
p2p_interface.send_message(msg_qsigshare([sig_share]))
p2p_interface.sync_with_ping()
Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

💬 Nitpick: Could collapse to existing send_and_ping helper

P2PInterface.send_and_ping(message) in test/functional/test_framework/p2p.py is exactly send_message followed by sync_with_ping, and is the idiomatic form used elsewhere in the suite. Replacing the two calls with p2p_interface.send_and_ping(msg_qsigshare([sig_share])) shaves a line and matches the established pattern. Purely stylistic — the explicit form is equally correct and arguably clearer about intent.

💡 Suggested change
Suggested change
p2p_interface.send_message(msg_qsigshare([sig_share]))
p2p_interface.sync_with_ping()
p2p_interface.send_and_ping(msg_qsigshare([sig_share]))

source: ['claude']

@knst
Copy link
Copy Markdown
Collaborator

knst commented May 4, 2026

#7301 is fixing #7255

@thepastaclaw
Copy link
Copy Markdown
Author

Thanks — I checked #7301. It adds qsendrecsigs message support plus InstantSend coverage, but it doesn't touch feature_llmq_signing.py or the direct qsigshare send path that timed out in #7255. This draft is narrower: it just flushes that injected qsigshare before wait_for_sigs(), so I think the two changes are complementary rather than duplicates.

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.

test: feature_llmq_signing.py --spork21 intermittent timeout in wait_for_sigs

2 participants