splice: tx_abort no longer reestablishes

As per eclair implementation we skip `channel_reestablish` and go straight into the channel for `tx_abort` events.

Changelog-None
This commit is contained in:
Dusty Daemon 2024-11-20 00:38:19 -05:00 committed by Rusty Russell
parent 6d63e68e99
commit d04e64670d
4 changed files with 6 additions and 13 deletions

View file

@ -1788,8 +1788,8 @@ static void splice_abort(struct peer *peer, const char *fmt, ...)
va_end(ap);
if (have_i_signed_inflight(peer, inflight))
status_failed(STATUS_FAIL_INTERNAL_ERROR,
"Tried to abort a splice where I have already"
peer_failed_err(peer->pps, &peer->channel_id,
"I needed to abort a splice where I have already"
" sent my signatures");
status_info("We are initiating tx_abort for reason: %s", reason);

View file

@ -17,5 +17,5 @@ def test_agressive_restart(node_factory, bitcoind):
for _ in range(20):
l1.rpc.stfu_channels([chan_id])
l1.rpc.abort_channels([chan_id])
l1.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l2.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l1.daemon.wait_for_log(r'Restarting channeld after tx_abort')
l2.daemon.wait_for_log(r'Restarting channeld after tx_abort')

View file

@ -230,10 +230,6 @@ def test_invalid_splice(node_factory, bitcoind):
assert len(list(mempool.keys())) == 1
assert result['txid'] in list(mempool.keys())
# Wait until nodes are reconnected
l1.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l2.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
bitcoind.generate_block(6, wait_for_mempool=1)
l2.daemon.wait_for_log(r'CHANNELD_AWAITING_SPLICE to CHANNELD_NORMAL')

View file

@ -104,11 +104,8 @@ def test_splice_disconnect_commit(node_factory, bitcoind, executor):
# Splice should be abandoned via tx_abort
# Wait until nodes are reconnected
l1.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l2.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_REESTABLISH')
l1.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_READY')
l2.daemon.wait_for_log(r'peer_in WIRE_CHANNEL_READY')
l1.daemon.wait_for_log(r'billboard: Channel ready for use.')
l2.daemon.wait_for_log(r'billboard: Channel ready for use.')
# Check that the splice doesn't generate a unilateral close transaction
time.sleep(5)