Skip to content

Commit 6d948ff

Browse files
authored
fix: Panic if Terraform fails installation (#1056)
1 parent 866205c commit 6d948ff

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

cli/start.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -202,9 +202,10 @@ func start() *cobra.Command {
202202
}
203203
}
204204

205+
errCh := make(chan error, 1)
205206
provisionerDaemons := make([]*provisionerd.Server, 0)
206207
for i := 0; uint8(i) < provisionerDaemonCount; i++ {
207-
daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir)
208+
daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir, errCh)
208209
if err != nil {
209210
return xerrors.Errorf("create provisioner daemon: %w", err)
210211
}
@@ -216,7 +217,6 @@ func start() *cobra.Command {
216217
}
217218
}()
218219

219-
errCh := make(chan error, 1)
220220
shutdownConnsCtx, shutdownConns := context.WithCancel(cmd.Context())
221221
defer shutdownConns()
222222
go func() {
@@ -413,7 +413,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo
413413
return nil
414414
}
415415

416-
func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string) (*provisionerd.Server, error) {
416+
func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string, errChan chan error) (*provisionerd.Server, error) {
417417
err := os.MkdirAll(cacheDir, 0700)
418418
if err != nil {
419419
return nil, xerrors.Errorf("mkdir %q: %w", cacheDir, err)
@@ -429,7 +429,7 @@ func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger s
429429
Logger: logger,
430430
})
431431
if err != nil {
432-
panic(err)
432+
errChan <- err
433433
}
434434
}()
435435

0 commit comments

Comments
 (0)