Skip to content

Commit 498c565

Browse files
authored
test(scaletest/workspacetraffic): fix test flake due to io.EOF on close (#21231)
Fixes coder/internal#119
1 parent 96fca01 commit 498c565

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

scaletest/workspacetraffic/conn.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -147,8 +147,9 @@ func connectSSH(ctx context.Context, client *codersdk.Client, agentID uuid.UUID,
147147
var closers []func() error
148148
defer func() {
149149
if err != nil {
150-
for _, c := range closers {
151-
if err2 := c(); err2 != nil {
150+
// Reverse order, like defer.
151+
for i := len(closers) - 1; i >= 0; i-- {
152+
if err2 := closers[i](); err2 != nil {
152153
err = errors.Join(err, err2)
153154
}
154155
}
@@ -227,8 +228,9 @@ func connectSSH(ctx context.Context, client *codersdk.Client, agentID uuid.UUID,
227228
}
228229
}
229230
}
230-
for _, c := range closers {
231-
if err := c(); err != nil {
231+
// Reverse order, like defer.
232+
for i := len(closers) - 1; i >= 0; i-- {
233+
if err := closers[i](); err != nil {
232234
if !errors.Is(err, io.EOF) {
233235
merr = errors.Join(merr, err)
234236
}

scaletest/workspacetraffic/run.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package workspacetraffic
33
import (
44
"bytes"
55
"context"
6+
"errors"
67
"fmt"
78
"io"
89
"math/rand"
@@ -131,8 +132,11 @@ func (r *Runner) Run(ctx context.Context, _ string, logs io.Writer) (err error)
131132
closeConn := func() error {
132133
closeOnce.Do(func() {
133134
closeErr = conn.Close()
134-
if closeErr != nil {
135+
if errors.Is(closeErr, io.EOF) {
136+
closeErr = nil
137+
} else if closeErr != nil {
135138
logger.Error(ctx, "close agent connection", slog.Error(closeErr))
139+
closeErr = xerrors.Errorf("close agent connection: %w", closeErr)
136140
}
137141
})
138142
return closeErr

0 commit comments

Comments
 (0)