diff --git a/client/alloc_runner.go b/client/alloc_runner.go index 3454450bc95..00d76746422 100644 --- a/client/alloc_runner.go +++ b/client/alloc_runner.go @@ -51,14 +51,13 @@ type AllocRunner struct { dirtyCh chan struct{} - ctx *driver.ExecContext - ctxLock sync.Mutex + ctx *driver.ExecContext + ctxLock sync.Mutex + tasks map[string]*TaskRunner + taskStates map[string]*structs.TaskState + restored map[string]struct{} + taskLock sync.RWMutex - tasks map[string]*TaskRunner - restored map[string]struct{} - taskLock sync.RWMutex - - taskStates map[string]*structs.TaskState taskStatusLock sync.RWMutex updateCh chan *structs.Allocation @@ -127,6 +126,9 @@ func (r *AllocRunner) RestoreState() error { if r.alloc == nil { snapshotErrors.Errors = append(snapshotErrors.Errors, fmt.Errorf("alloc_runner snapshot includes a nil allocation")) } + if r.ctx == nil { + snapshotErrors.Errors = append(snapshotErrors.Errors, fmt.Errorf("alloc_runner snapshot includes a nil context")) + } if e := snapshotErrors.ErrorOrNil(); e != nil { return e }