Skip to content

Commit 6c67add

Browse files
authored
fix: detect and retry reverse port forward on used port (#10844)
Fixes #10799 The flake happens when we try to remote forward, but the port we've chosen is not free. In the flaked example, it's actually the SSH listener that occupies the port we try to remote forward, leading to confusing reads (c.f. the linked issue). This fix simplies the tests considerably by using the Go ssh client, rather than shelling out to OpenSSH. This avoids using a pseudoterminal, avoids the need for starting any local OS listeners to communicate the forwarding (go SSH just returns in-process listeners), and avoids an OS listener to wire OpenSSH up to the agentConn. With the simplied logic, we can immediately tell if a remote forward on a random port fails, so we can do this in a loop until success or timeout. I've also simplified and fixed up the other forwarding tests. Since we set up forwarding in-process with Go ssh, we can remove a lot of the `require.Eventually` logic.
1 parent d5ddcbd commit 6c67add

File tree

2 files changed

+103
-273
lines changed

2 files changed

+103
-273
lines changed

0 commit comments

Comments
 (0)