diff --git a/cli/internal/run/run.go b/cli/internal/run/run.go index 628d914c8a6b5..7767063b42158 100644 --- a/cli/internal/run/run.go +++ b/cli/internal/run/run.go @@ -13,7 +13,6 @@ import ( "path/filepath" "sort" "strings" - "sync" "text/tabwriter" "time" @@ -690,8 +689,6 @@ func (c *RunCommand) executeTasks(g *completeGraph, rs *runSpec, engine *core.Sc c.Ui.Error(err.Error()) } - ec.logReplayWaitGroup.Wait() - if err := runState.Close(c.Ui, rs.Opts.profile); err != nil { c.Ui.Error(fmt.Sprintf("Error with profiler: %s", err.Error())) return 1 @@ -778,8 +775,7 @@ func (c *RunCommand) executeDryRun(engine *core.Scheduler, g *completeGraph, tas } // Replay logs will try to replay logs back to the stdout -func replayLogs(logger hclog.Logger, output cli.Ui, runOptions *RunOptions, logFileName, hash string, wg *sync.WaitGroup) { - defer wg.Done() +func replayLogs(logger hclog.Logger, output cli.Ui, runOptions *RunOptions, logFileName, hash string) { logger.Debug("start replaying logs") f, err := os.Open(filepath.Join(runOptions.cwd, logFileName)) if err != nil { @@ -821,16 +817,15 @@ func getTargetsFromArguments(arguments []string, configJson *fs.TurboConfigJSON) } type execContext struct { - colorCache *ColorCache - runState *RunState - rs *runSpec - logReplayWaitGroup sync.WaitGroup - ui cli.Ui - turboCache cache.Cache - logger hclog.Logger - backend *api.LanguageBackend - processes *process.Manager - taskHashes *Tracker + colorCache *ColorCache + runState *RunState + rs *runSpec + ui cli.Ui + turboCache cache.Cache + logger hclog.Logger + backend *api.LanguageBackend + processes *process.Manager + taskHashes *Tracker } func (e *execContext) logError(log hclog.Logger, prefix string, err error) { @@ -895,8 +890,7 @@ func (e *execContext) exec(pt *packageTask, deps dag.Set) error { targetUi.Output(fmt.Sprintf("cache hit, suppressing output %s", ui.Dim(hash))) case FullLogs: if e.rs.Opts.stream && fs.FileExists(filepath.Join(e.rs.Opts.cwd, logFileName)) { - e.logReplayWaitGroup.Add(1) - go replayLogs(targetLogger, e.ui, e.rs.Opts, logFileName, hash, &e.logReplayWaitGroup) + replayLogs(targetLogger, e.ui, e.rs.Opts, logFileName, hash) } default: // NoLogs, do not output anything