fix: fix null pointer on external provisioner daemons with daily_cost (#9401)

* fix: fix null pointer on external provisioner daemons with daily_cost

Signed-off-by: Spike Curtis <spike@coder.com>

* Add logging for debounce and job acquire

Signed-off-by: Spike Curtis <spike@coder.com>

* Return error instead of panic

Signed-off-by: Spike Curtis <spike@coder.com>

* remove debounce on external provisioners to fix test flakes

Signed-off-by: Spike Curtis <spike@coder.com>

---------

Signed-off-by: Spike Curtis <spike@coder.com>
This commit is contained in:
Spike Curtis
2023-08-30 10:48:35 +00:00
committed by GitHub
parent a415395e9e
commit 90acf998bf
6 changed files with 664 additions and 350 deletions
+2
View File
@@ -308,6 +308,7 @@ func (p *Server) acquireJob(ctx context.Context) {
lastAcquireMutex.RLock()
if !lastAcquire.IsZero() && time.Since(lastAcquire) < p.opts.JobPollDebounce {
lastAcquireMutex.RUnlock()
p.opts.Logger.Debug(ctx, "debounce acquire job")
return
}
lastAcquireMutex.RUnlock()
@@ -319,6 +320,7 @@ func (p *Server) acquireJob(ctx context.Context) {
}
job, err := client.AcquireJob(ctx, &proto.Empty{})
p.opts.Logger.Debug(ctx, "called AcquireJob on client", slog.F("job_id", job.GetJobId()), slog.Error(err))
if err != nil {
if errors.Is(err, context.Canceled) ||
errors.Is(err, yamux.ErrSessionShutdown) ||