Comment 0 for bug 1937117

Revision history for this message
Dan Streetman (ddstreet) wrote :

[impact]

bug 1929560 fixed an error in setting/clearing an interface 'master' during systemd-networkd startup if the interface was already up, however for any users who have been relying on that bug to manually set an interface 'master' for an interface that's otherwise controlled by systemd-networkd, this will break their system by removing the interface from the 'master' on a systemd-networkd restart.

For example, if a user has interface 'eth0' configured to be controlled by systemd-networkd, but then manually does 'ip l set dev eth0 master br0' to add it to the 'br0' bridge, previous behavior would leave 'eth0' in the bridge after a systemd-networkd restart, even though it should not be in the bridge based on the systemd-networkd configuration. The new behavior matches systemd-networkd behavior for all other aspects (i.e. networkd removes all addresses, routes, and other settings it doesn't know about or that are different from its configuration), however it breaks users expecting the previous incorrect behavior.

[test case]

configure systemd-networkd to control an interface that isn't set with any 'master', and start networkd. For example, an instance configured for DHCP. After networkd has started, manually set the interface 'master' to an existing bridge. Restart networkd, and check if the interface still has the bridge 'master' or not.

[regression potential]

the main potential is for problems for those with misconfigured systems, relying on specific previous incorrect behavior, specifically interfaces controlled by systemd-networkd in part, but also with manual configuration performed outside of systemd-networkd configuration.

[scope]

this is needed for bionic and focal to restore the previous incorrect behavior; the correct behavior should remain in impish, and (arguably) should remain in hirsute as well

[other info]

see bug 1929560 for details of the original bug