mirror of
https://github.com/kemko/nomad.git
synced 2026-01-04 17:35:43 +03:00
client/allocrunner: depend on internal task state
Alloc runner already tracks tasks associated with alloc. Here, we become defensive by relying on the alloc runner tracked tasks, rather than depend on server never updating the job unexpectedly.
This commit is contained in:
@@ -571,11 +571,11 @@ func (ar *allocRunner) clientAlloc(taskStates map[string]*structs.TaskState) *st
|
||||
// Make sure we have marked the finished at for every task. This is used
|
||||
// to calculate the reschedule time for failed allocations.
|
||||
now := time.Now()
|
||||
for _, task := range alloc.Job.LookupTaskGroup(alloc.TaskGroup).Tasks {
|
||||
ts, ok := a.TaskStates[task.Name]
|
||||
for taskName := range ar.tasks {
|
||||
ts, ok := a.TaskStates[taskName]
|
||||
if !ok {
|
||||
ts = &structs.TaskState{}
|
||||
a.TaskStates[task.Name] = ts
|
||||
a.TaskStates[taskName] = ts
|
||||
}
|
||||
if ts.FinishedAt.IsZero() {
|
||||
ts.FinishedAt = now
|
||||
|
||||
Reference in New Issue
Block a user