From 6d948ffba2f72fbb6b3a552183c0dcb8473cd511 Mon Sep 17 00:00:00 2001 From: Kyle Carberry Date: Mon, 18 Apr 2022 15:11:59 -0500 Subject: [PATCH] fix: Panic if Terraform fails installation (#1056) --- cli/start.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cli/start.go b/cli/start.go index 3c9e0c9b98..50d24bf4f3 100644 --- a/cli/start.go +++ b/cli/start.go @@ -202,9 +202,10 @@ func start() *cobra.Command { } } + errCh := make(chan error, 1) provisionerDaemons := make([]*provisionerd.Server, 0) for i := 0; uint8(i) < provisionerDaemonCount; i++ { - daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir) + daemonClose, err := newProvisionerDaemon(cmd.Context(), client, logger, cacheDir, errCh) if err != nil { return xerrors.Errorf("create provisioner daemon: %w", err) } @@ -216,7 +217,6 @@ func start() *cobra.Command { } }() - errCh := make(chan error, 1) shutdownConnsCtx, shutdownConns := context.WithCancel(cmd.Context()) defer shutdownConns() go func() { @@ -413,7 +413,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo return nil } -func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string) (*provisionerd.Server, error) { +func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger slog.Logger, cacheDir string, errChan chan error) (*provisionerd.Server, error) { err := os.MkdirAll(cacheDir, 0700) if err != nil { return nil, xerrors.Errorf("mkdir %q: %w", cacheDir, err) @@ -429,7 +429,7 @@ func newProvisionerDaemon(ctx context.Context, client *codersdk.Client, logger s Logger: logger, }) if err != nil { - panic(err) + errChan <- err } }()