Skip to content

Conversation

@DashCoreAutoGuix
Copy link
Owner

Backports bitcoin#27549

Original commit: ee467b8

Backported from Bitcoin Core v0.26

dash#6775 updates UniValue, which changed the syntax for fetching
integers, which created a divergence of expected behavior from dash#6691
@coderabbitai
Copy link

coderabbitai bot commented Jul 27, 2025

Warning

Rate limit exceeded

@PastaPastaPasta has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 26 minutes and 32 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 94f0caa and 8bb8cfd.

📒 Files selected for processing (2)
  • src/test/fuzz/addrman.cpp (1 hunks)
  • src/test/llmq_commitment_tests.cpp (1 hunks)
✨ Finishing Touches
  • 📝 Generate Docstrings
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch backport-0.26-batch-438-pr-27549

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@DashCoreAutoGuix
Copy link
Owner Author

✅ Backport Verification - Issues Fixed

I found and fixed 1 issue:

  • CI build failures across all platforms: Fixed UniValue API calls from get_int() to getInt() in llmq_commitment_tests.cpp

Original Bitcoin commit: ee467b8238
Fix commit pushed: 53bb7a7e0a
Reviewed commit hash: d20e2f9b0e-verify-1753633817

The build failures were caused by outdated UniValue API method calls. The fix updates the API calls to match Dash's UniValue implementation and should resolve all CI build issues.

@DashCoreAutoGuix DashCoreAutoGuix added the fixes-applied Issues found and fixes automatically applied label Jul 27, 2025
@DashCoreAutoGuix
Copy link
Owner Author

✅ Backport Verification - Issues Fixed

I found and fixed 1 issue:

  • CI Build Failures: Fixed UniValue API calls in llmq_commitment_tests.cpp to use template syntax (getInt<int>() instead of getInt())

Original Bitcoin commit: ee467b8238
Fix commit pushed: 6319688ba2
Reviewed commit hash: 53bb7a7e0a-verify-1753643850

Analysis Summary

  • ✅ Bitcoin commit only modifies src/test/fuzz/addrman.cpp for fuzz testing coverage
  • ✅ Size ratio: 142.9% (within acceptable 80-150% range)
  • ✅ No witness/segwit code detected
  • ✅ File operations validated
  • 🔧 Fixed: CI failures across all platforms due to incorrect UniValue API usage

Issues Addressed

  • Build Failures: Updated getInt() calls to getInt<int>() to match new UniValue template API
  • Extra File: The llmq_commitment_tests.cpp changes were necessary Dash-specific fixes for UniValue compatibility

The backport now faithfully implements Bitcoin's addrman fuzz testing improvements while maintaining compatibility with Dash's codebase.

@DashCoreAutoGuix
Copy link
Owner Author

✅ Backport Verification Successful

No issues found! This backport is complete and faithful to the original Bitcoin change.

Analysis Summary

CI Analysis

The single CI failure (feature_asset_locks.py) is unrelated to this PR:

  • Our PR only touches fuzzing tests (src/test/fuzz/addrman.cpp) and UniValue API
  • Other test suites pass successfully (linux64_nowallet-test)
  • The asset locks test failure is a known flaky test unrelated to addrman changes

Validation Results

No witness/segwit code - Clean
File operations valid - Minor extra file for Dash compatibility
Size ratio acceptable - 142.9% (14→20 lines)
Bitcoin intent preserved - Faithful backport with proper adaptations

This PR is ready for merge. ✅

@DashCoreAutoGuix DashCoreAutoGuix added the verified Backport verification passed - ready for merge label Jul 27, 2025
…nd dash#6775, compile error

0b8fe88 chore: resolve logical conflict between dash#6691 and dash#6775 (Kittywhiskers Van Gogh)

Pull request description:

  ## Additional Information

  [dash#6691](dashpay#6691) and [dash#6775](dashpay#6775) were merged into `develop` in that order, neither conflicting with the other. [dash#6775](dashpay#6775) updated the UniValue subtree before it was unsubtree'd and subsequent improvements were backported. To enable this, a syntax change was required which replaced `get_int()` with `getInt<int>()`, which, the code introduced in [dash#6691](dashpay#6691) didn't use as it was merged _before_ [dash#6775](dashpay#6775).

  As it was new code, this was not registered as a merge conflict but this logical conflict caused `develop` to fail ([build](https://github.com/dashpay/dash/actions/runs/16546102266)). This pull request remedies that issue.

  ## Breaking Changes

  None expected

  ## Checklist

  - [x] I have performed a self-review of my own code
  - [x] I have commented my code, particularly in hard-to-understand areas **(note: N/A)**
  - [x] I have added or updated relevant unit/integration/functional/e2e tests
  - [x] I have made corresponding changes to the documentation **(note: N/A)**
  - [x] I have assigned this pull request to a milestone _(for repository code-owners and collaborators only)_

ACKs for top commit:
  UdjinM6:
    utACK 0b8fe88
  knst:
    utACK 0b8fe88

Tree-SHA512: 7af4599e38bca5d776766cd8a2acda46d046f5dfe9f9c45586ac1f27fc709bd6ac913709b2c24d133ab57bbf2a6d5cb0630d0e874f62a472e173d61ced2face0
…in `Select()`, `Size()` and `GetAddr()`

35a2175 fuzz: addrman, add coverage for `network` field in `Select()`, `Size()` and `GetAddr()` (brunoerg)

Pull request description:

  This PR adds fuzz coverage for `network` field in `Select()`, `Size()` and `GetAddr()`, there was only call to them without passing a network.
  https://marcofalke.github.io/b-c-cov/fuzz.coverage/src/addrman.cpp.gcov.html

ACKs for top commit:
  amitiuttarwar:
    for the record, ACK 35a2175 - only small changes from the version (previously) proposed in 27213
  achow101:
    ACK 35a2175
  mzumsande:
    Code Review ACK 35a2175, haven't tested this yet, but I will let the fuzzer run for a while now.

Tree-SHA512: dddb8322298d6c373c8e68d57538470b11825a9a310a355828c351d5c0b19ff6779d024a800e3ea90126d0c050e86f71fd22cd23d1a306c784cef0f82c45e3ca
@PastaPastaPasta PastaPastaPasta force-pushed the backport-0.26-batch-438-pr-27549 branch from 6319688 to 8bb8cfd Compare July 29, 2025 00:26
@PastaPastaPasta PastaPastaPasta removed the verified Backport verification passed - ready for merge label Dec 3, 2025
@DashCoreAutoGuix
Copy link
Owner Author

✅ Verification Complete - APPROVED

Bitcoin Commit

Verification Results

CI Status: All 51 checks passed
Backport Faithfulness: Faithful adaptation of Bitcoin commit
Size Ratio: 142.9% (within acceptable range)
Previously Applied Fixes: Correctly resolves logical conflict with dash#6775

Analysis

The main backport commit faithfully adapts bitcoin#27549, adding fuzz coverage for the network field parameter in several AddrMan methods.

The additional fix commit (0b8fe88f5c) is a legitimate resolution of a logical conflict:

Conclusion

This PR is a faithful backport with appropriate fixes applied. All checks pass and the code is ready to merge.


Automated verification by Claude Code

@DashCoreAutoGuix DashCoreAutoGuix added the verified Backport verification passed - ready for merge label Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fixes-applied Issues found and fixes automatically applied verified Backport verification passed - ready for merge

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants