mirror of https://github.com/coder/coder.git
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.
This commit is contained in:
parent
112eaf80d1
commit
413bfb8d58
16
cli/agent.go
16
cli/agent.go
|
@ -168,6 +168,18 @@ func workspaceAgent() *cobra.Command {
|
|||
}
|
||||
}
|
||||
|
||||
ctx, cancelFunc := context.WithTimeout(cmd.Context(), time.Hour)
|
||||
defer cancelFunc()
|
||||
for retry.New(100*time.Millisecond, 5*time.Second).Wait(ctx) {
|
||||
err := client.PostWorkspaceAgentVersion(cmd.Context(), version)
|
||||
if err != nil {
|
||||
logger.Warn(cmd.Context(), "post agent version: %w", slog.Error(err), slog.F("version", version))
|
||||
continue
|
||||
}
|
||||
logger.Info(ctx, "updated agent version", slog.F("version", version))
|
||||
break
|
||||
}
|
||||
|
||||
executablePath, err := os.Executable()
|
||||
if err != nil {
|
||||
return xerrors.Errorf("getting os executable: %w", err)
|
||||
|
@ -177,10 +189,6 @@ func workspaceAgent() *cobra.Command {
|
|||
return xerrors.Errorf("add executable to $PATH: %w", err)
|
||||
}
|
||||
|
||||
if err := client.PostWorkspaceAgentVersion(cmd.Context(), version); err != nil {
|
||||
logger.Error(cmd.Context(), "post agent version: %w", slog.Error(err), slog.F("version", version))
|
||||
}
|
||||
|
||||
closer := agent.New(agent.Options{
|
||||
FetchMetadata: client.WorkspaceAgentMetadata,
|
||||
Logger: logger,
|
||||
|
|
Loading…
Reference in New Issue