Fix defects found since 0.7.0 - #913
Merged
Merged
Conversation
rearden-grok
Bot
force-pushed
the
review/post-070-fixes
branch
from
October 5, 2026 02:11
75fcb65 to
1bd3541
Compare
estimatesmartfee, estimaterawfee, and Electrum blockchain.estimatefee mapped target 2 onto the next-block rate. Only target 0 is that horizon.
A second announcer's reserve used to remove the txid for every peer. The parent still delivers the copy the other peer announced.
CVE-2012-2459 leaves check_merkle_root true. Tip follow disconnects that peer, and compact reconstruction sends the hash back to getdata.
The dial error string contained "STREAM CONNECT", which session_dead treats as a dead SAM session. A refused local port is a dial failure.
The picker returned before onion and I2P, and a failed overlay peer was recorded as 0.0.0.0. A fresh overlay keeps one seat, and an unspecified version socket is not inserted.
The cheap prevout read used tip spentness for a parent that is not the tip, then remembered the header as invalid. Accept holds the branch.
A waiter always wrote its scripthash back into the client's last-1 slot. A script that won the slot while the waiter was in flight stays.
A cursor that exists somewhere else on the chain used to restart page 1. The page, the summary, the chain route, and a multi POST now return after_txid not found and no rows.
Open revalidation and spend replay lower a marker above the surviving tip, so a later confirm still annotates spends. A checkpoint cannot publish the pre-disconnect height over that clamp.
A present create.loc span never closed the page, so each later create re-read the tail. One tail read now keeps only creates that can still change the page.
The separate fixture repeated a zero block hash. CodeQL treats that new literal as a hard-coded salt. The prev-edge shrink already builds the chain; it now also clamps a marker above the new tip.
A leader that returned after a newer script finished wrote last_sh unconditionally. A waiter that woke after that newer script used its own later stamp and put the old scripthash back. Publish the leader's start sequence, and only when it is at least the one stored.
The session-dead test built the dial error string itself, so the old stream-connect prefix still passed. stream_connect_once now uses sam_dial_error, and the test dials a closed local port.
rearden-grok
Bot
force-pushed
the
review/post-070-fixes
branch
from
October 5, 2026 03:22
1bd3541 to
17ee024
Compare
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.
Summary
Review of
v0.7.0..HEAD. Each fix-now defect is one commit and a test that asserts what a peer, client, or operator observes.estimatesmartfee/estimaterawfee/ Electrumblockchain.estimatefeereturned the 1-block rate for target 26379d2ea143c260cefd3122c01ef6efa2e79stream_connect_onceand classifiessam_dial_error17ee0245c0.0.0.093a9a95a0submitblockcached a non-tip sibling that spends a coin the tip also spent3cae0e822e079c6f3fed0a692b8after_txidoutside that script's history restarted page 1ed8687092b555c36aae524528bdDeferred
SocketAddr. Onion and I2P have no socket, so that cooldown does not stick to them. Retargeting the map toNetAddris a larger change than this review. The picker already skips a recently failed overlay when a fresh one exists.--rpc-work-queue 0is the default queue of 16. The Unreleased sentence that calls 0 unlimited is stale.CHANGELOG.mdis not edited on this branch.changelog.d/drop-esplora-ws.mdalready removed.changelog.d/fee-history-from-chain.mdstill says package rates. The code is an individual-tx p10. Intentional product, stale note.0disable path is unreachable after the setter stores at least one hour. Not a user-visible bug.The separate shrink-marker test was folded into
poison_prev_edge_shrinks_tip(d8180a6fa). CIcoveragepassed on17ee0245c(run 37259161203). Master also includes #914 (mempool-torn-persist); that open path was read and left as landed.Test plan
cargo fmt --checkandcargo clippy -D warningson the touched cratesorphanage::tests::mempool_under_pressure,rpc_regtest_chain_ops, andchain_connect_reorg_and_growth17ee0245c:qc,test,windows,macos,coverage