Skip to content

Commit 413bfb8

Browse files
authored
fix: Retry reporting agent version (#4190)
It's possible that an agent starts before a build is reported as complete. This ensures the version is successfully sent before the startup completes. Fixes #4151.
1 parent 112eaf8 commit 413bfb8

File tree

1 file changed

+12
-4
lines changed

1 file changed

+12
-4
lines changed

cli/agent.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,18 @@ func workspaceAgent() *cobra.Command {
168168
}
169169
}
170170

171+
ctx, cancelFunc := context.WithTimeout(cmd.Context(), time.Hour)
172+
defer cancelFunc()
173+
for retry.New(100*time.Millisecond, 5*time.Second).Wait(ctx) {
174+
err := client.PostWorkspaceAgentVersion(cmd.Context(), version)
175+
if err != nil {
176+
logger.Warn(cmd.Context(), "post agent version: %w", slog.Error(err), slog.F("version", version))
177+
continue
178+
}
179+
logger.Info(ctx, "updated agent version", slog.F("version", version))
180+
break
181+
}
182+
171183
executablePath, err := os.Executable()
172184
if err != nil {
173185
return xerrors.Errorf("getting os executable: %w", err)
@@ -177,10 +189,6 @@ func workspaceAgent() *cobra.Command {
177189
return xerrors.Errorf("add executable to $PATH: %w", err)
178190
}
179191

180-
if err := client.PostWorkspaceAgentVersion(cmd.Context(), version); err != nil {
181-
logger.Error(cmd.Context(), "post agent version: %w", slog.Error(err), slog.F("version", version))
182-
}
183-
184192
closer := agent.New(agent.Options{
185193
FetchMetadata: client.WorkspaceAgentMetadata,
186194
Logger: logger,

0 commit comments

Comments
 (0)