16636: fix logic bug in (*Scheduler) updateMetrics()
authorWard Vandewege <ward@curii.com>
Tue, 15 Sep 2020 19:30:55 +0000 (15:30 -0400)
committerWard Vandewege <ward@curii.com>
Tue, 15 Sep 2020 19:30:55 +0000 (15:30 -0400)
Arvados-DCO-1.1-Signed-off-by: Ward Vandewege <ward@curii.com>

lib/dispatchcloud/scheduler/scheduler.go

index b1d369ed2483ec15e4b36e8e01e18dbac5f11cc3..c3e67dd11f70a4e00c8a74f59826efb13bf0e35c 100644 (file)
@@ -99,7 +99,7 @@ func (sch *Scheduler) registerMetrics(reg *prometheus.Registry) {
 }
 
 func (sch *Scheduler) updateMetrics() {
-       earliest := time.Now()
+       earliest := time.Time{}
        entries, _ := sch.queue.Entries()
        running := sch.pool.Running()
        for _, ent := range entries {
@@ -109,7 +109,7 @@ func (sch *Scheduler) updateMetrics() {
                        // ContainerStateLocked and running on a worker, most likely loading the
                        // payload image
                        if _, ok := running[ent.Container.UUID]; !ok {
-                               if ent.Container.CreatedAt.Before(earliest) {
+                               if ent.Container.CreatedAt.Before(earliest) || earliest.IsZero() {
                                        earliest = ent.Container.CreatedAt
                                }
                        }