import (
"fmt"
- "git.curoverse.com/arvados.git/lib/dispatchcloud/container"
- "git.curoverse.com/arvados.git/sdk/go/arvados"
+ "git.arvados.org/arvados.git/lib/dispatchcloud/container"
+ "git.arvados.org/arvados.git/sdk/go/arvados"
"github.com/sirupsen/logrus"
)
sch.logger.WithFields(logrus.Fields{
"ContainerUUID": uuid,
"State": ent.Container.State,
- }).Info("container finished")
+ }).Info("container finished -- dropping from queue")
sch.queue.Forget(uuid)
}
case arvados.ContainerStateQueued:
// preparing to run a container that
// has already been unlocked/requeued.
go sch.kill(uuid, fmt.Sprintf("state=%s", ent.Container.State))
+ } else if ent.Container.Priority == 0 {
+ sch.logger.WithFields(logrus.Fields{
+ "ContainerUUID": uuid,
+ "State": ent.Container.State,
+ "Priority": ent.Container.Priority,
+ }).Info("container on hold -- dropping from queue")
+ sch.queue.Forget(uuid)
}
case arvados.ContainerStateLocked:
if running && !exited.IsZero() && qUpdated.After(exited) {
func (sch *Scheduler) kill(uuid string, reason string) {
sch.pool.KillContainer(uuid, reason)
+ sch.pool.ForgetContainer(uuid)
}
func (sch *Scheduler) requeue(ent container.QueueEnt, reason string) {