Don’t attempt to reconnect swarm on failed join after timeout

Signed-off-by: Tonis Tiigi <tonistiigi@gmail.com>
This commit is contained in:
Tonis Tiigi 2016-10-03 13:38:01 -07:00
parent 94cd7ed72d
commit 7381c84bfb
1 changed files with 9 additions and 2 deletions

View File

@ -481,8 +481,15 @@ func (c *Cluster) Join(req types.JoinRequest) error {
select {
case <-time.After(swarmConnectTimeout):
// attempt to connect will continue in background, also reconnecting
go c.reconnectOnFailure(n)
// attempt to connect will continue in background, but reconnect only if it didn't fail
go func() {
select {
case <-n.Ready():
c.reconnectOnFailure(n)
case <-n.done:
logrus.Errorf("failed to join the cluster: %+v", c.err)
}
}()
return ErrSwarmJoinTimeoutReached
case <-n.Ready():
go c.reconnectOnFailure(n)