Skip to content

Commit 91ce403

Browse files
Tests: take netgraph locks after peer_state
Previously we were taking the NetworkGraph::{channels,nodes} locks before ChannelManager::per_peer_state's peer_state locks in some tests, which violated a lock order requirement we have in ChannelManager to take netgraph locks *after* peer_state locks. See OffersMessageFlow::path_for_release_htlc which is called while a peer_state lock is held and takes netgraph locks while creating blinded paths.
1 parent bc259f0 commit 91ce403

File tree

3 files changed

+6
-3
lines changed

3 files changed

+6
-3
lines changed

lightning/src/ln/functional_test_utils.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2647,11 +2647,12 @@ pub fn get_route(send_node: &Node, route_params: &RouteParameters) -> Result<Rou
26472647
let scorer = TestScorer::new();
26482648
let keys_manager = TestKeysInterface::new(&[0u8; 32], Network::Testnet);
26492649
let random_seed_bytes = keys_manager.get_secure_random_bytes();
2650+
let first_hops = send_node.node.list_usable_channels();
26502651
router::get_route(
26512652
&send_node.node.get_our_node_id(),
26522653
route_params,
26532654
&send_node.network_graph.read_only(),
2654-
Some(&send_node.node.list_usable_channels().iter().collect::<Vec<_>>()),
2655+
Some(&first_hops.iter().collect::<Vec<_>>()),
26552656
send_node.logger,
26562657
&scorer,
26572658
&Default::default(),

lightning/src/ln/onion_route_tests.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2392,14 +2392,15 @@ macro_rules! get_phantom_route {
23922392
])])
23932393
.unwrap();
23942394
let scorer = test_utils::TestScorer::new();
2395+
let first_hops = $nodes[0].node.list_usable_channels();
23952396
let network_graph = $nodes[0].network_graph.read_only();
23962397
let route_params = RouteParameters::from_payment_params_and_value(payment_params, $amt);
23972398
(
23982399
get_route(
23992400
&$nodes[0].node.get_our_node_id(),
24002401
&route_params,
24012402
&network_graph,
2402-
Some(&$nodes[0].node.list_usable_channels().iter().collect::<Vec<_>>()),
2403+
Some(&first_hops.iter().collect::<Vec<_>>()),
24032404
$nodes[0].logger,
24042405
&scorer,
24052406
&Default::default(),

lightning/src/ln/payment_tests.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1453,11 +1453,12 @@ fn get_ldk_payment_preimage() {
14531453
let keys_manager = test_utils::TestKeysInterface::new(&[0u8; 32], Network::Testnet);
14541454
let random_seed_bytes = keys_manager.get_secure_random_bytes();
14551455
let route_params = RouteParameters::from_payment_params_and_value(payment_params, amt_msat);
1456+
let first_hops = nodes[0].node.list_usable_channels();
14561457
let route = get_route(
14571458
&node_a_id,
14581459
&route_params,
14591460
&nodes[0].network_graph.read_only(),
1460-
Some(&nodes[0].node.list_usable_channels().iter().collect::<Vec<_>>()),
1461+
Some(&first_hops.iter().collect::<Vec<_>>()),
14611462
nodes[0].logger,
14621463
&scorer,
14631464
&Default::default(),

0 commit comments

Comments
 (0)