debugger: Fix endless restarts when connecting to TCP adapters over SSH (#34328)
Closes #34323 Closes #34313 The previous PR #33932 introduced a way to "close" the `pending_requests` buffer of the `TransportDelegate`, preventing any more requests from being added. This prevents pending requests from accumulating without ever being drained during the shutdown sequence; without it, some of our tests hang at this point (due to using a single-threaded executor). The bug occurred because we were closing `pending_requests` whenever we detected the server side of the transport shut down, and this closed state stuck around and interfered with the retry logic for SSH+TCP adapter connections. This PR fixes the bug by only closing `pending_requests` on session shutdown, and adds a regression test covering the SSH retry logic. Release Notes: - debugger: Fixed a bug causing SSH connections to some adapters (Python, Go, JavaScript) to fail and restart endlessly.
This commit is contained in:
parent
46834d31f1
commit
1b6e212eba
8 changed files with 433 additions and 135 deletions
|
@ -122,7 +122,7 @@ impl DebugSession {
|
|||
.to_owned()
|
||||
}
|
||||
|
||||
pub(crate) fn running_state(&self) -> &Entity<RunningState> {
|
||||
pub fn running_state(&self) -> &Entity<RunningState> {
|
||||
&self.running_state
|
||||
}
|
||||
|
||||
|
|
|
@ -1459,7 +1459,7 @@ impl RunningState {
|
|||
}
|
||||
}
|
||||
|
||||
pub(crate) fn selected_thread_id(&self) -> Option<ThreadId> {
|
||||
pub fn selected_thread_id(&self) -> Option<ThreadId> {
|
||||
self.thread_id
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue