diff --git a/scheduler/reconcile_util.go b/scheduler/reconcile_util.go index d3080563860..9b61797f59e 100644 --- a/scheduler/reconcile_util.go +++ b/scheduler/reconcile_util.go @@ -256,8 +256,10 @@ func (a allocSet) filterByRescheduleable(isBatch bool, now time.Time, evalID str var eligibleNow, eligibleLater bool var rescheduleTime time.Time - // Ignore allocs that have already been rescheduled - if alloc.NextAllocation != "" { + // Ignore failing allocs that have already been rescheduled + // only failed allocs should be rescheduled, but protect against a bug allowing rescheduling + // running allocs + if alloc.NextAllocation != "" && alloc.TerminalStatus() { continue }