Skip to content

dual-fund/splice: mark superseded RBF/splice inflight candidates, stop recomputing their commitments - #9448

Draft
Andezion wants to merge 2 commits into
ElementsProject:masterfrom
Andezion:splice-superseded-inflights
Draft

dual-fund/splice: mark superseded RBF/splice inflight candidates, stop recomputing their commitments#9448
Andezion wants to merge 2 commits into
ElementsProject:masterfrom
Andezion:splice-superseded-inflights

Conversation

@Andezion

Copy link
Copy Markdown
Collaborator

Summary

Follow-up to #9373 ("dualopend: reconnect during block catch-up locks in the
wrong RBF inflight", fixed in 90b58e8 / 31d08fb). That fix made
lightningd record the winning channel_inflight as soon as its block is
seen, instead of waiting for chain catch-up to finish - closing a window
where a reconnecting peer could lock in against a funding tx that was never
mined

TODO

  • Actually stopping channeld from signing commitments for dead
    candidates (not just lightningd persisting them) would require channeld
    to drop the candidate from its own splice_state->inflights and
    renegotiate the commit-sig batch size with the peer???
  • While writing the splice reconnect test, found a separate, smaller bug -
    splice_depth_cb() (channel_control.c) only notifies channeld of a
    reached confirmation depth if (channel->owner). If the depth threshold
    is reached while the peer is disconnected, that notification is silently
    dropped and isn't resent until the next new block (self-healing, but
    can delay splice lock-in by up to one confirmation after a disconnect)

Testing

  • wallet/test/run-wallet (DB round-trip unit test) - pass
  • tests/test_opening.py -k rbf (15 tests, including the extended
    test_rbf_reconnect_non_last_mined which now asserts losing inflights
    end up superseded) - pass
  • tests/test_splicing.py (full suite, 13 tests) - pass
  • make check-whitespace check-spelling - clean

Important

26.09 FREEZE August 5th: Non-bugfix PRs not ready by this date will wait for 26.12.

RC1 is scheduled on August 17th

The final release is scheduled for September 7th.

Checklist

Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:

  • The changelog has been updated in the relevant commit(s) according to the guidelines.
  • Tests have been added or modified to reflect the changes.
  • Documentation has been reviewed and updated as needed.
  • Related issues have been listed and linked, including any that this PR closes.
  • Important All PRs must consider how to reverse any persistent changes for tools/lightning-downgrade

@Andezion Andezion self-assigned this Aug 26, 2026
@Andezion
Andezion force-pushed the splice-superseded-inflights branch from 330c26a to de4018c Compare August 26, 2026 10:49
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.

1 participant