Skip to content

Commit 0878381

Browse files
authored
fix(cli/cliui): avoid nil pointer deref when agent disconnects (#9892)
Fixes #9884
1 parent de6d0b9 commit 0878381

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

cli/cliui/agent.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,12 +237,14 @@ func Agent(ctx context.Context, writer io.Writer, agentID uuid.UUID, opts AgentO
237237
sw.Start(stage)
238238
sw.Log(time.Now(), codersdk.LogLevelWarn, "Wait for it to reconnect or restart your workspace.")
239239
sw.Log(time.Now(), codersdk.LogLevelWarn, troubleshootingMessage(agent, "https://coder.com/docs/v2/latest/templates#agent-connection-issues"))
240+
241+
disconnectedAt := *agent.DisconnectedAt
240242
for agent.Status == codersdk.WorkspaceAgentDisconnected {
241243
if agent, err = fetch(); err != nil {
242244
return xerrors.Errorf("fetch: %w", err)
243245
}
244246
}
245-
sw.Complete(stage, agent.LastConnectedAt.Sub(*agent.DisconnectedAt))
247+
sw.Complete(stage, agent.LastConnectedAt.Sub(disconnectedAt))
246248
}
247249
}
248250
}

cli/cliui/agent_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@ func TestAgent(t *testing.T) {
133133
},
134134
func(_ context.Context, agent *codersdk.WorkspaceAgent, _ chan []codersdk.WorkspaceAgentLog) error {
135135
agent.Status = codersdk.WorkspaceAgentConnected
136+
agent.DisconnectedAt = nil
136137
agent.LastConnectedAt = ptr.Ref(time.Now())
137138
return nil
138139
},

0 commit comments

Comments
 (0)