diff --git a/contrib/mesos/pkg/scheduler/plugin.go b/contrib/mesos/pkg/scheduler/plugin.go index 1c8d01eede7..37dedda7c6d 100644 --- a/contrib/mesos/pkg/scheduler/plugin.go +++ b/contrib/mesos/pkg/scheduler/plugin.go @@ -341,7 +341,11 @@ func (k *kubeScheduler) doSchedule(task *podtask.T, err error) (string, error) { } task.Offer = offer - k.api.algorithm().Procurement()(task, details) // TODO(jdef) why is nothing checking the error returned here? + if err := k.api.algorithm().Procurement()(task, details); err != nil { + offer.Release() + task.Reset() + return "", err + } if err := k.api.tasks().Update(task); err != nil { offer.Release()