14807: Escalate sigterm->sigkill->drain instance.
[arvados.git] / lib / dispatchcloud / scheduler / fix_stale_locks.go
index 4bd27021c675d1c8ce40753d131d0631041ea59c..1f9338f7b8d02e66d73239cc0f0c76ebc53ab423 100644 (file)
@@ -23,7 +23,7 @@ func (sch *Scheduler) fixStaleLocks() {
        var stale []string
        timeout := time.NewTimer(sch.staleLockTimeout)
 waiting:
-       for {
+       for sch.pool.CountWorkers()[worker.StateUnknown] > 0 {
                running := sch.pool.Running()
                qEntries, _ := sch.queue.Entries()
 
@@ -43,16 +43,10 @@ waiting:
 
                select {
                case <-wp:
-                       // Stop waiting if all workers have been
-                       // contacted.
-                       if sch.pool.CountWorkers()[worker.StateUnknown] == 0 {
-                               break waiting
-                       }
                case <-timeout.C:
                        // Give up.
                        break waiting
                }
-
        }
 
        for _, uuid := range stale {