Enforce minimum backoff to avoid simultaneous validation on one engine.

Signed-off-by: Dong Chen <dongluo.chen@docker.com>
This commit is contained in:
Dong Chen 2016-01-20 17:49:40 -08:00
parent 8f31d014e4
commit 14bfc52d36
1 changed files with 3 additions and 1 deletions

View File

@ -239,7 +239,9 @@ func (e *Engine) TimeToValidate() bool {
}
sinceLastUpdate := time.Since(e.updatedAt)
// Increase check interval for a pending engine according to failureCount and cap it at a limit
if sinceLastUpdate > validationLimit || sinceLastUpdate > time.Duration(e.failureCount)*failureBackoff {
// '+1' would enforce a minimum backoff because e.failureCount could be 0 at first join, or
// the engine has a duplicate ID
if sinceLastUpdate > validationLimit || sinceLastUpdate > time.Duration(e.failureCount+1)*failureBackoff {
return true
}
return false