Bug 1685166 - Record permanent mac address when device is enslaved in a team, or else /etc/mac-addresses will record broken information
Summary: Record permanent mac address when device is enslaved in a team, or else /etc/...
Status: VERIFIED
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: rear
Version: 7.6
Hardware: Unspecified
OS: Unspecified
urgent
medium
Target Milestone: rc
: 7.7
Assignee: Pavel Cahyna
QA Contact: David Jež
Marie Dolezelova
URL:
Whiteboard:
Keywords: Regression, ZStream
Depends On:
Blocks: 1685178 1690518 1691304
TreeView+ depends on / blocked
 
Reported: 2019-03-04 14:17 UTC by Pavel Cahyna
Modified: 2019-07-01 18:27 UTC (History)
8 users (show)

(edit)
.Teaming in the rescue system works correctly again

Updates provided by the advisory RHBA-2019:0498 fixed several problems in ReaR, affecting complex network configurations. However, in case of teaming, this update introduced another problem. If the team had multiple member interfaces, the team device was not configured correctly in the rescue system. As a consequence, after applying an update provided by RHBA-2019:0498, a work around was needed to preserve the previous behavior. This update fixes the bug in ReaR, and teaming in the rescue system now works correctly.
Clone Of:
: 1685178 1690518 (view as bug list)
(edit)
Last Closed:


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Github rear rear pull 2065 None None None 2019-03-04 14:17 UTC

Description Pavel Cahyna 2019-03-04 14:17:24 UTC
This bug was initially created as a copy of Bug #1653214

I am copying this bug because: 
the inital bug was for bond, but the same issue exists for team, and is not fixed by the patch.

Description of problem:

See https://github.com/rear/rear/pull/2065 and https://github.com/rear/rear/pull/1954/commits/a8d52b7caef3dd4ec8645f36631f5770427bf6dc#r261993600.

When a physical device is enslaved in a team, its MAC address is modified to the first network interface's MAC address of the team. This makes /etc/mac-addresses record an invalid information, e.g.:

/tmp/rear.7Qce2ppNowoFkvF/rootfs/etc/mac-addresses
Broken:
em3 24:6e:96:c4:3d:d4
em1 24:6e:96:c4:3d:d0
em2 24:6e:96:c4:3d:d0

Expected:
em3 24:6e:96:c4:3d:d4
em1 24:6e:96:c4:3d:d2
em2 24:6e:96:c4:3d:d0

This leads to teamd being invoked with incorrect parameters from /etc/scripts/system-setup.d/60-network-devices.sh:

teamd -d -c '{"device": "int-team", "ports": {"em1": {"link_watch": {"name": "ethtool"}}, "em1": {"link_watch": {"name": "ethtool"}}}, "runner": {"name": "lacp", "tx_hash": ["eth", "ipv4", "ipv6"]}}'
which fails with
Failed to parse config: duplicate object key near '"em1"' on line 1, column 82
Failed to load config.

see https://bugzilla.redhat.com/show_bug.cgi?id=1664304#c3 for details.

(the script is being modified by a sed command which changes the names of interfaces according to /etc/mac-addresses to compensate for missing interface renaming.)

The same issue existed for bonding. While the bonding issue was fixed, the teaming one requires a different fix.

Since SIMPLIFY_TEAMING=no is the default as the result of applying the fix of bz1639705, this leads to a regression, since the configuration which can work with the old code (equivalent to SIMPLIFY_TEAMING=yes) are now broken. (Those configurations can be characterized as: no LACP and teaming with more than one team member.)

The regression can be fixed simply by changing the default to SIMPLIFY_TEAMING=yes, but  for a complete fix one needs to apply PR#2065.

Comment 3 Pavel Cahyna 2019-03-14 09:12:24 UTC
Upstream PR merged


Note You need to log in before you can comment on or make changes to this bug.