Skip to content

[teamd] retry creating team_port after interface info changed #2699

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

Merged
merged 1 commit into from
Mar 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
From 7dff9798c2c92eb75b0120737efb81febcdb80c1 Mon Sep 17 00:00:00 2001
From: Ying Xie <[email protected]>
Date: Sun, 24 Mar 2019 21:49:59 +0000
Subject: [PATCH] [teamd] register change handler for TEAM_IFINFO_CHANGE as
well

There has been a race condition in the libnal/teamd interation, causing
TEAM_PORT_CHANGE to report a port with empty device name. Which then
causes the teamd unable to add the lag members into the lag.

Registering to the TEAM_IFINFO_CHANGE would give teamd another chance to
add member again.

Signed-off-by: Ying Xie <[email protected]>
---
teamd/teamd_per_port.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/teamd/teamd_per_port.c b/teamd/teamd_per_port.c
index 09d1dc7..137da57 100644
--- a/teamd/teamd_per_port.c
+++ b/teamd/teamd_per_port.c
@@ -274,7 +274,7 @@ static int port_priv_change_handler_func(struct team_handle *th, void *priv,

static const struct team_change_handler port_priv_change_handler = {
.func = port_priv_change_handler_func,
- .type_mask = TEAM_PORT_CHANGE,
+ .type_mask = TEAM_PORT_CHANGE | TEAM_IFINFO_CHANGE,
};

int teamd_per_port_init(struct teamd_context *ctx)
--
2.7.4

1 change: 1 addition & 0 deletions src/libteam/series
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,4 @@
0005-libteam-Add-warm_reboot-mode.patch
0006-Fix-ifinfo_link_with_port-race-condition-with-newlink.patch
0007-Skip-setting-the-same-hwaddr-to-lag-port-to-avoid-di.patch
0008-teamd-register-change-handler-for-TEAM_IFINFO_CHANGE.patch