Skip to content

Commit e593a44

Browse files
committed
actually close connections properly
1 parent 4516e54 commit e593a44

File tree

1 file changed

+3
-15
lines changed

1 file changed

+3
-15
lines changed

support/support.go

+3-15
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import (
55
"context"
66
"encoding/base64"
77
"encoding/json"
8-
"errors"
98
"io"
109
"net/http"
1110
"strings"
@@ -476,34 +475,23 @@ func sanitizeEnv(kvs map[string]string) {
476475

477476
// TODO: use rpty instead? which is less liable to fail?
478477
func runCmd(ctx context.Context, client *codersdk.Client, agentID uuid.UUID, cmd string) ([]byte, error) {
479-
var err error
480-
var closers []func() error
481-
defer func() {
482-
if err != nil {
483-
for _, c := range closers {
484-
if err2 := c(); err2 != nil {
485-
err = errors.Join(err, err2)
486-
}
487-
}
488-
}
489-
}()
490478
agentConn, err := client.DialWorkspaceAgent(ctx, agentID, &codersdk.DialWorkspaceAgentOptions{})
491479
if err != nil {
492480
return nil, xerrors.Errorf("dial workspace agent: %w", err)
493481
}
494-
closers = append(closers, agentConn.Close)
482+
defer agentConn.Close()
495483

496484
sshClient, err := agentConn.SSHClient(ctx)
497485
if err != nil {
498486
return nil, xerrors.Errorf("get ssh client: %w", err)
499487
}
500-
closers = append(closers, sshClient.Close)
488+
defer sshClient.Close()
501489

502490
sshSession, err := sshClient.NewSession()
503491
if err != nil {
504492
return nil, xerrors.Errorf("new ssh session: %w", err)
505493
}
506-
closers = append(closers, sshSession.Close)
494+
defer sshSession.Close()
507495

508496
cmdBytes, err := sshSession.CombinedOutput(cmd)
509497
if err != nil {

0 commit comments

Comments
 (0)