X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/be8ed479042df4fdefe1fd18c1e2e984e1c99bc0..71fd4da18b22100682ae7e2079aadfd66360d310:/lib/dispatchcloud/worker/pool.go diff --git a/lib/dispatchcloud/worker/pool.go b/lib/dispatchcloud/worker/pool.go index 1665a1e43d..e6b5062989 100644 --- a/lib/dispatchcloud/worker/pool.go +++ b/lib/dispatchcloud/worker/pool.go @@ -204,7 +204,14 @@ func (wp *Pool) Unallocated() map[arvados.InstanceType]int { creating[it] = len(times) } for _, wkr := range wp.workers { - if !(wkr.state == StateIdle || wkr.state == StateBooting || wkr.state == StateUnknown) || wkr.idleBehavior != IdleBehaviorRun { + // Skip workers that are not expected to become + // available soon. Note len(wkr.running)>0 is not + // redundant here: it can be true even in + // StateUnknown. + if wkr.state == StateShutdown || + wkr.state == StateRunning || + wkr.idleBehavior != IdleBehaviorRun || + len(wkr.running) > 0 { continue } it := wkr.instType