fix: Panic if Terraform fails installation (#1056)

This commit is contained in:
Kyle Carberry
2022-04-18 15:11:59 -05:00
committed by GitHub
parent 866205c145
commit 6d948ffba2
+4 -4
View File
@@ -202,9 +202,10 @@ func start() *cobra.Command {
} }
} }
errCh := make(chan error, 1)
provisionerDaemons := make([]*provisionerd.Server, 0) provisionerDaemons := make([]*provisionerd.Server, 0)
for i := 0; uint8(i) < provisionerDaemonCount; i++ { 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 { if err != nil {
return xerrors.Errorf("create provisioner daemon: %w", err) 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()) shutdownConnsCtx, shutdownConns := context.WithCancel(cmd.Context())
defer shutdownConns() defer shutdownConns()
go func() { go func() {
@@ -413,7 +413,7 @@ func createFirstUser(cmd *cobra.Command, client *codersdk.Client, cfg config.Roo
return nil 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) err := os.MkdirAll(cacheDir, 0700)
if err != nil { if err != nil {
return nil, xerrors.Errorf("mkdir %q: %w", cacheDir, err) 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, Logger: logger,
}) })
if err != nil { if err != nil {
panic(err) errChan <- err
} }
}() }()