From c186e99a3d51d7cf496792c35c64338618e4a4ce Mon Sep 17 00:00:00 2001 From: Thorsten Ball Date: Thu, 17 Oct 2024 17:07:34 +0200 Subject: [PATCH] ssh remote: Reset missed heartbeats on connection activity (#19368) Ran into this this morning. At least I suspect I ran into it. In any case: we need to reset the missed hearbeats to 0 in case we got any connection activity. Release Notes: - N/A --- crates/remote/src/ssh_session.rs | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crates/remote/src/ssh_session.rs b/crates/remote/src/ssh_session.rs index a09faf894c..6f9df8a4a3 100644 --- a/crates/remote/src/ssh_session.rs +++ b/crates/remote/src/ssh_session.rs @@ -832,7 +832,15 @@ impl SshRemoteClient { log::warn!("ssh heartbeat: connection activity channel has been dropped. stopping."); return Ok(()); } + keepalive_timer.set(cx.background_executor().timer(HEARTBEAT_INTERVAL).fuse()); + + if missed_heartbeats != 0 { + missed_heartbeats = 0; + this.update(&mut cx, |this, mut cx| { + this.handle_heartbeat_result(missed_heartbeats, &mut cx) + })?; + } } _ = keepalive_timer => { log::debug!("Sending heartbeat to server..."); @@ -845,6 +853,7 @@ impl SshRemoteClient { ping_result } }; + if result.is_err() { missed_heartbeats += 1; log::warn!(