Skip to content

Commit 84031af

Browse files
committed
Fix handling of inbound uncommitted feerate updates
If we receive an update_fee but do not receive a commitment_signed, we should not persist the pending fee update to disk or hold on to it after our peer disconnects. In order to make the code the most readable, we add a state enum which matches the relevant states from InboundHTLCState, allowing for more simple code comparison between inbound HTLC handling and update_fee handling.
1 parent 0db56b6 commit 84031af

File tree

2 files changed

+110
-61
lines changed

2 files changed

+110
-61
lines changed

lightning/src/ln/chanmon_update_fail_tests.rs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2069,10 +2069,15 @@ fn do_update_fee_resend_test(deliver_update: bool, parallel_updates: bool) {
20692069
let bs_connect_msg = get_event_msg!(nodes[1], MessageSendEvent::SendChannelReestablish, nodes[0].node.get_our_node_id());
20702070

20712071
nodes[1].node.handle_channel_reestablish(&nodes[0].node.get_our_node_id(), &as_connect_msg);
2072+
get_event_msg!(nodes[1], MessageSendEvent::SendChannelUpdate, nodes[0].node.get_our_node_id());
20722073
assert!(nodes[1].node.get_and_clear_pending_msg_events().is_empty());
20732074

20742075
nodes[0].node.handle_channel_reestablish(&nodes[1].node.get_our_node_id(), &bs_connect_msg);
2075-
let update_msgs = get_htlc_update_msgs!(nodes[0], nodes[1].node.get_our_node_id());
2076+
let mut as_reconnect_msgs = nodes[0].node.get_and_clear_pending_msg_events();
2077+
assert_eq!(as_reconnect_msgs.len(), 2);
2078+
if let MessageSendEvent::SendChannelUpdate { .. } = as_reconnect_msgs.pop().unwrap() {} else { panic!(); }
2079+
let update_msgs = if let MessageSendEvent::UpdateHTLCs { updates, .. } = as_reconnect_msgs.pop().unwrap()
2080+
{ updates } else { panic!(); };
20762081
assert!(update_msgs.update_fee.is_some());
20772082
nodes[1].node.handle_update_fee(&nodes[0].node.get_our_node_id(), update_msgs.update_fee.as_ref().unwrap());
20782083
if parallel_updates {

0 commit comments

Comments
 (0)