From 88d49dbcab97823042f8ef7197b92ab538c492fd Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 3 Oct 2022 09:51:20 -0500 Subject: [PATCH] fix: Add isFirst check before err check (#4326) This was causing TestBlockNonBrowser to hang and fail. --- codersdk/workspaceagents.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/codersdk/workspaceagents.go b/codersdk/workspaceagents.go index 687aa704e6..6979aaf46b 100644 --- a/codersdk/workspaceagents.go +++ b/codersdk/workspaceagents.go @@ -331,6 +331,14 @@ func (c *Client) DialWorkspaceAgentTailnet(ctx context.Context, logger slog.Logg // Need to disable compression to avoid a data-race. CompressionMode: websocket.CompressionDisabled, }) + if isFirst { + if err != nil && res.StatusCode == http.StatusConflict { + first <- readBodyAsError(res) + return + } + isFirst = false + close(first) + } if err != nil { if errors.Is(err, context.Canceled) { return @@ -338,14 +346,6 @@ func (c *Client) DialWorkspaceAgentTailnet(ctx context.Context, logger slog.Logg logger.Debug(ctx, "failed to dial", slog.Error(err)) continue } - if isFirst { - if res.StatusCode == http.StatusConflict { - first <- readBodyAsError(res) - return - } - isFirst = false - close(first) - } sendNode, errChan := tailnet.ServeCoordinator(websocket.NetConn(ctx, ws, websocket.MessageBinary), func(node []*tailnet.Node) error { return conn.UpdateNodes(node) })