14360: Call ChooseType just once per container.
authorTom Clegg <tclegg@veritasgenetics.com>
Tue, 18 Dec 2018 19:11:23 +0000 (14:11 -0500)
committerTom Clegg <tclegg@veritasgenetics.com>
Tue, 18 Dec 2018 19:11:23 +0000 (14:11 -0500)
Arvados-DCO-1.1-Signed-off-by: Tom Clegg <tclegg@veritasgenetics.com>

lib/dispatchcloud/test/queue.go

index ceca8c63f1fbb20fe685c37db912d8d36b83d053..e18a2b5362b413a16eeb28984bfabbe34796f6db 100644 (file)
@@ -134,10 +134,15 @@ func (q *Queue) Update() error {
                if !exists && (ctr.State == arvados.ContainerStateComplete || ctr.State == arvados.ContainerStateCancelled) {
                        continue
                }
-               it, _ := q.ChooseType(&ctr)
-               upd[ctr.UUID] = container.QueueEnt{
-                       Container:    ctr,
-                       InstanceType: it,
+               if ent, ok := upd[ctr.UUID]; ok {
+                       ent.Container = ctr
+                       upd[ctr.UUID] = ent
+               } else {
+                       it, _ := q.ChooseType(&ctr)
+                       upd[ctr.UUID] = container.QueueEnt{
+                               Container:    ctr,
+                               InstanceType: it,
+                       }
                }
        }
        q.entries = upd