diff --git a/internal/app/machined/pkg/system/runner/goroutine/goroutine.go b/internal/app/machined/pkg/system/runner/goroutine/goroutine.go index e2c22b631..9407b5c24 100644 --- a/internal/app/machined/pkg/system/runner/goroutine/goroutine.go +++ b/internal/app/machined/pkg/system/runner/goroutine/goroutine.go @@ -48,6 +48,8 @@ func NewRunner(data *userdata.UserData, id string, main FuncMain, setters ...run opts: runner.DefaultOptions(), } + r.ctx, r.ctxCancel = context.WithCancel(context.Background()) + for _, setter := range setters { setter(r.opts) } @@ -62,8 +64,6 @@ func (r *goroutineRunner) Open(ctx context.Context) error { // Run implements the Runner interface. func (r *goroutineRunner) Run(eventSink events.Recorder) error { - r.ctx, r.ctxCancel = context.WithCancel(context.Background()) - r.wg.Add(1) defer r.wg.Done() @@ -112,6 +112,8 @@ func (r *goroutineRunner) Stop() error { r.wg.Wait() + r.ctx, r.ctxCancel = context.WithCancel(context.Background()) + return nil }