Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Backport 17.06] Overlay fix for transient IP reuse #1965

Merged
merged 3 commits into from
Oct 3, 2017

Conversation

fcrisciani
Copy link

Backport of the PR: #1935
Squashed all the commits into single one and added 2 dependecies to avoid conflict resolution

Flavio Crisciani and others added 3 commits October 3, 2017 08:25
In the peerDelete the updateDB flag was always true
In the peerAdd the updateDB flag was always true except for
the initSandbox case. But now the initSandbox is handled by the
go routing of the peer operations, so we can move that flag
down and remove it from the top level functions

Signed-off-by: Flavio Crisciani <[email protected]>
(cherry picked from commit 396db35)
Use the string concatenation operator instead of using Sprintf for
simple string concatenation. This is usually easier to read, and allows
the compiler to detect problems with the type or number of operands,
which would be runtime errors with Sprintf.

Signed-off-by: Aaron Lehmann <[email protected]>
(cherry picked from commit dbd2925)
- Handle IP reuse in overlay
(cherry picked from commit 49200cb)
- flush peerdb entries on network delete
(cherry picked from commit 2ec096a)
- log for miss notification
(cherry picked from commit 097b363)
- Changed ipMask to string
(cherry picked from commit d93b9b0)

Signed-off-by: Flavio Crisciani <[email protected]>
@fcrisciani fcrisciani requested a review from mavenugo October 3, 2017 15:34
@sathieu
Copy link

sathieu commented Oct 18, 2017

Given the dates, it looks like it's not in 17.06.2. Is 17.06.3 planned?

@@ -760,58 +757,38 @@ func (n *network) watchMiss(nlSock *nl.NetlinkSocket) {
continue
}

logrus.Debugf("miss notification: dest IP %v, dest MAC %v", ip, mac)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

miss notifications were a handy signature of ipvs connection tracking timeouts, since the after-timeout connection attempt arps for the VIP. i miss them. when is time.Since(t) expected to exceed a second?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

time.Since is simple used as a rate limiter below, in order not to flood the logs with a notification that potentially is driven by data packets.
Anyway just as an heads up, the whole watchMiss logic is gone from swarm mode, so nothing of this code will be executed

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah. that would explain the lack of messages then.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

have l2miss and l3miss been disabled on vxlan0? No reason to generate the notification if it's not being consumed.

Copy link
Collaborator

@trapier trapier Jan 25, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually, for my diagnostic purposes, there might be :-).

ip -t monitor neigh in the overlay namespace can provide the record of miss notifications we used to get from the daemon.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

actually the whole go routine is neither spawned.
this will save per overlay namespace: 1 thread (that was used for the recv syscall) and 1 netlink socket. Definitely too many resources only to print a log :)

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

reference PR: #2047

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.

5 participants