From 793defef72843fe509d44d7e4fb22c388cdbc642 Mon Sep 17 00:00:00 2001 From: Oleksii Kliukin Date: Wed, 11 Oct 2017 14:52:47 +0200 Subject: [PATCH] Fix pod wait timeouts. Previously, a timer had been reset on every message received through the pod channel. --- pkg/cluster/util.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkg/cluster/util.go b/pkg/cluster/util.go index dde77dc0b..caaa292da 100644 --- a/pkg/cluster/util.go +++ b/pkg/cluster/util.go @@ -184,6 +184,7 @@ func (c *Cluster) getTeamMembers() ([]string, error) { } func (c *Cluster) waitForPodLabel(podEvents chan spec.PodEvent, role *PostgresRole) error { + timeout := time.After(c.OpConfig.PodLabelWaitTimeout) for { select { case podEvent := <-podEvents: @@ -196,20 +197,21 @@ func (c *Cluster) waitForPodLabel(podEvents chan spec.PodEvent, role *PostgresRo } else if *role == podRole { return nil } - case <-time.After(c.OpConfig.PodLabelWaitTimeout): + case <-timeout: return fmt.Errorf("pod label wait timeout") } } } func (c *Cluster) waitForPodDeletion(podEvents chan spec.PodEvent) error { + timeout := time.After(c.OpConfig.PodDeletionWaitTimeout) for { select { case podEvent := <-podEvents: if podEvent.EventType == spec.EventDelete { return nil } - case <-time.After(c.OpConfig.PodDeletionWaitTimeout): + case <-timeout: return fmt.Errorf("pod deletion wait timeout") } }