refinery: bugfix

start the channel BEFORE calling .await on the handshake task. otherwise
the channel does not exist yet and the handshake will timeout.
This commit is contained in:
draoi
2024-01-27 14:05:43 +01:00
parent cbfef54aab
commit 5aa187913f

View File

@@ -174,13 +174,13 @@ async fn ping_node_impl(addr: Url, p2p: P2pPtr) -> bool {
p2p.executor(),
);
channel.clone().start(p2p.executor());
// Ensure the channel gets stopped by adding a timeout to the handshake. Otherwise if
// the handshake does not finish channel.stop() will never get called, resulting in
// zombie processes.
let result = timeout(Duration::from_secs(5), handshake_task).await;
channel.clone().start(p2p.executor());
match result {
Ok(_) => {
debug!(target: "net::refinery::ping_node()", "Handshake success! Stopping channel.");