mirror of
https://github.com/coder/coder.git
synced 2025-07-13 21:36:50 +00:00
fix(codersdk): keep workspace agent connection open after dial context (#10863)
This commit is contained in:
committed by
GitHub
parent
3a0a4ddfcd
commit
f441ad66e1
@ -416,13 +416,20 @@ func TestWorkspaceAgentTailnet(t *testing.T) {
|
||||
_ = agenttest.New(t, client.URL, r.AgentToken)
|
||||
resources := coderdtest.AwaitWorkspaceAgents(t, client, r.Workspace.ID)
|
||||
|
||||
ctx, cancelFunc := context.WithCancel(context.Background())
|
||||
defer cancelFunc()
|
||||
conn, err := client.DialWorkspaceAgent(ctx, resources[0].Agents[0].ID, &codersdk.DialWorkspaceAgentOptions{
|
||||
Logger: slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug),
|
||||
})
|
||||
conn, err := func() (*codersdk.WorkspaceAgentConn, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel() // Connection should remain open even if the dial context is canceled.
|
||||
|
||||
return client.DialWorkspaceAgent(ctx, resources[0].Agents[0].ID, &codersdk.DialWorkspaceAgentOptions{
|
||||
Logger: slogtest.Make(t, nil).Named("client").Leveled(slog.LevelDebug),
|
||||
})
|
||||
}()
|
||||
require.NoError(t, err)
|
||||
defer conn.Close()
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel()
|
||||
|
||||
sshClient, err := conn.SSHClient(ctx)
|
||||
require.NoError(t, err)
|
||||
session, err := sshClient.NewSession()
|
||||
@ -1355,12 +1362,20 @@ func TestWorkspaceAgent_UpdatedDERP(t *testing.T) {
|
||||
agentID := resources[0].Agents[0].ID
|
||||
|
||||
// Connect from a client.
|
||||
ctx := testutil.Context(t, testutil.WaitLong)
|
||||
conn1, err := client.DialWorkspaceAgent(ctx, agentID, &codersdk.DialWorkspaceAgentOptions{
|
||||
Logger: logger.Named("client1"),
|
||||
})
|
||||
conn1, err := func() (*codersdk.WorkspaceAgentConn, error) {
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel() // Connection should remain open even if the dial context is canceled.
|
||||
|
||||
return client.DialWorkspaceAgent(ctx, agentID, &codersdk.DialWorkspaceAgentOptions{
|
||||
Logger: logger.Named("client1"),
|
||||
})
|
||||
}()
|
||||
require.NoError(t, err)
|
||||
defer conn1.Close()
|
||||
|
||||
ctx, cancel := context.WithTimeout(context.Background(), testutil.WaitLong)
|
||||
defer cancel()
|
||||
|
||||
ok := conn1.AwaitReachable(ctx)
|
||||
require.True(t, ok)
|
||||
|
||||
|
Reference in New Issue
Block a user