Skip to content

Conversation

@andrewhsu
Copy link
Contributor

Backport fixes to bump_17.06.0 branch:

The commit 297c3d4 taken from #1836 is needed to make the cherry pick go in clean.

Cherry picked commits 297c3d4 bede778 4cf74e8 26db0b9:

$ git cherry-pick -s -x 297c3d4 bede778 4cf74e8 26db0b9

Flavio Crisciani added 4 commits August 1, 2017 16:01
A rapid (within networkReapTime 30min) leave/join network
can corrupt the list of nodes per network with multiple copies
of the same nodes.
The fix makes sure that each node is present only once

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
(cherry picked from commit 297c3d4)
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
- Introduced back the Invalidate
- optimized the rebroadcast logic

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
(cherry picked from commit bede778)
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
join/leave fixes:
 - when a node leaves the network will deletes all the other nodes entries but will keep track of its
   to make sure that other nodes if they are tcp syncing will be aware of them being deleted. (a node that
   did not yet receive the network leave will potentially tcp/sync)

add network reapTime, was not being set locally

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
(cherry picked from commit 4cf74e8)
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
Before when a node was failing, all the nodes would bump the lamport time of all their
entries. This means that if a node flap, there will be a storm of update of all the entries.
This commit on the base of the previous logic guarantees that only the node that joins back
will readvertise its own entries, the other nodes won't need to advertise again.

Signed-off-by: Flavio Crisciani <flavio.crisciani@docker.com>
(cherry picked from commit 26db0b9)
Signed-off-by: Andrew Hsu <andrewhsu@docker.com>
@andrewhsu
Copy link
Contributor Author

@fcrisciani @mavenugo PTAL

@fcrisciani
Copy link

LGTM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants