From b95e8bf489d031371291c7731097b8d8b970feb6 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Thu, 30 Mar 2023 15:29:29 +0000 Subject: [PATCH] chore: dial the remote socket continually until connect It's possible that the command starts but the socket isn't ready even when the file exists. --- agent/agent_test.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/agent/agent_test.go b/agent/agent_test.go index 4b15b85e42cab..a147d27815f6a 100644 --- a/agent/agent_test.go +++ b/agent/agent_test.go @@ -673,13 +673,14 @@ func TestAgent_UnixRemoteForwarding(t *testing.T) { err = cmd.Start() require.NoError(t, err) + // It's possible that the socket is created but the server is not ready to + // accept connections yet. We need to retry until we can connect. + var conn net.Conn require.Eventually(t, func() bool { - _, err := os.Stat(remoteSocketPath) + var err error + conn, err = net.Dial("unix", remoteSocketPath) return err == nil - }, testutil.WaitLong, testutil.IntervalFast) - - conn, err := net.Dial("unix", remoteSocketPath) - require.NoError(t, err) + }, testutil.WaitShort, testutil.IntervalFast) defer conn.Close() _, err = conn.Write([]byte("test")) require.NoError(t, err)