From fd7fcc762e0f1b135242e21d164e77e5db9057e3 Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Fri, 29 Apr 2016 13:59:25 +0100 Subject: [PATCH] Clarify the function of the periodic ticker. - it either retries for consensus or retries operations we would have tried previously. There is no point retrying pending operations if we are waiting for consensus. --- ipam/allocator.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/ipam/allocator.go b/ipam/allocator.go index f3388a67..b3951db0 100644 --- a/ipam/allocator.go +++ b/ipam/allocator.go @@ -632,11 +632,13 @@ func (alloc *Allocator) actorLoop(actionChan <-chan func(), stopChan <-chan stru case <-stopChan: return case <-alloc.ticker.C: + // Retry things in case messages got lost between here and recipients if alloc.awaitingConsensus { alloc.propose() + } else { + alloc.tryPendingOps() } alloc.removeDeadContainers() - alloc.tryPendingOps() } alloc.assertInvariants()