You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've run into issues where the data channel was unhealthy, but it wasn't detected with this check:
if ch.write_all(&cmd).await.is_ok() {
tokio::spawn(async move {
let _ = copy_bidirectional(&mut ch, &mut visitor).await;
});
break;
} else {
// Current data channel is broken. Request for a new one
if data_ch_req_tx.send(true).is_err() {
break 'pool;
}
}
Ultimately it was because the ch.write_all(&cmd) may not cause the buffer to be flushed. The cause of this is that the connection is assumed healthy, but then fails during copy_bidirectional. It also means the TCP connection pool won't always be the correct size.
I've implemented the fix that is working for me in this PR: #316
The text was updated successfully, but these errors were encountered:
I've run into issues where the data channel was unhealthy, but it wasn't detected with this check:
Ultimately it was because the
ch.write_all(&cmd)
may not cause the buffer to be flushed. The cause of this is that the connection is assumed healthy, but then fails duringcopy_bidirectional
. It also means the TCP connection pool won't always be the correct size.I've implemented the fix that is working for me in this PR: #316
The text was updated successfully, but these errors were encountered: