wait for chain_tip_update before cancelling download in mempool_cancel_mined (#5322)
This commit is contained in:
parent
cea622307a
commit
59d647cfa1
|
@ -394,7 +394,7 @@ async fn mempool_cancel_mined() -> Result<(), Report> {
|
||||||
mut mempool,
|
mut mempool,
|
||||||
_peer_set,
|
_peer_set,
|
||||||
mut state_service,
|
mut state_service,
|
||||||
_chain_tip_change,
|
mut chain_tip_change,
|
||||||
_tx_verifier,
|
_tx_verifier,
|
||||||
mut recent_syncs,
|
mut recent_syncs,
|
||||||
) = setup(network, u64::MAX).await;
|
) = setup(network, u64::MAX).await;
|
||||||
|
@ -461,6 +461,21 @@ async fn mempool_cancel_mined() -> Result<(), Report> {
|
||||||
.await
|
.await
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
|
// Wait for the chain tip update
|
||||||
|
if let Err(timeout_error) = timeout(
|
||||||
|
CHAIN_TIP_UPDATE_WAIT_LIMIT,
|
||||||
|
chain_tip_change.wait_for_tip_change(),
|
||||||
|
)
|
||||||
|
.await
|
||||||
|
.map(|change_result| change_result.expect("unexpected chain tip update failure"))
|
||||||
|
{
|
||||||
|
info!(
|
||||||
|
timeout = ?humantime_seconds(CHAIN_TIP_UPDATE_WAIT_LIMIT),
|
||||||
|
?timeout_error,
|
||||||
|
"timeout waiting for chain tip change after committing block"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// This is done twice because after the first query the cancellation
|
// This is done twice because after the first query the cancellation
|
||||||
// is picked up by select!, and after the second the mempool gets the
|
// is picked up by select!, and after the second the mempool gets the
|
||||||
// result and the download future is removed.
|
// result and the download future is removed.
|
||||||
|
|
Loading…
Reference in New Issue