statement-distribution: fix parachains stalling on async_backing enablement (#3063)

Topology is coming only at the beginning of each session, so we might
lose it if prospective parachains was not enabled at the begining of the
session, so cache it for later use.

Fixes: https://github.com/paritytech/polkadot-sdk/issues/3058

---------

Signed-off-by: Alexandru Gheorghe <alexandru.gheorghe@parity.io>
This commit is contained in:
Alexandru Gheorghe
2024-01-29 10:41:31 +02:00
committed by GitHub
parent 84a246c24a
commit 987edd8864
3 changed files with 35 additions and 16 deletions
@@ -437,6 +437,7 @@ fn received_advertisement_after_backing_leads_to_acknowledgement() {
validator_count,
group_size,
&peers_to_connect,
false,
)
.await;
let [_, _, peer_c, peer_d, _] = peers[..] else { panic!() };
@@ -608,6 +609,7 @@ fn receive_ack_for_unconfirmed_candidate() {
validator_count,
group_size,
&peers_to_connect,
false,
)
.await;
let [_, _, peer_c, _] = peers[..] else { panic!() };
@@ -676,6 +678,7 @@ fn received_acknowledgements_for_locally_confirmed() {
validator_count,
group_size,
&peers_to_connect,
true,
)
.await;
let [peer_a, peer_b, peer_c, peer_d] = peers[..] else { panic!() };
@@ -837,6 +840,7 @@ fn received_acknowledgements_for_externally_confirmed() {
validator_count,
group_size,
&peers_to_connect,
false,
)
.await;
let [peer_a, _, peer_c, peer_d, _] = peers[..] else { panic!() };
@@ -437,6 +437,7 @@ async fn setup_test_and_connect_peers(
validator_count: usize,
group_size: usize,
peers_to_connect: &[TestPeerToConnect],
send_topology_before_leaf: bool,
) -> TestSetupInfo {
let local_validator = state.local.clone().unwrap();
let local_group = local_validator.group_index.unwrap();
@@ -481,10 +482,14 @@ async fn setup_test_and_connect_peers(
}
}
activate_leaf(overseer, &test_leaf, &state, true, vec![]).await;
// Send gossip topology.
send_new_topology(overseer, state.make_dummy_topology()).await;
// Send gossip topology and activate leaf.
if send_topology_before_leaf {
send_new_topology(overseer, state.make_dummy_topology()).await;
activate_leaf(overseer, &test_leaf, &state, true, vec![]).await;
} else {
activate_leaf(overseer, &test_leaf, &state, true, vec![]).await;
send_new_topology(overseer, state.make_dummy_topology()).await;
}
TestSetupInfo {
local_validator,