udev does not preserve virtio interface names on s390x upgrades

Bug #1682437 reported by Dimitri John Ledkov on 2017-04-13
20
This bug affects 3 people
Affects Status Importance Assigned to Milestone
Release Notes for Ubuntu
Undecided
Unassigned
systemd (Ubuntu)
High
Dimitri John Ledkov
Zesty
High
Dimitri John Ledkov

Bug Description

[Impact]

 * Upgrading s390x, kvm/qemu instances from yakkety to zesty results in a change of network interface names (e.g. from eth0 to stable/predictable bus_id name enc3, just like on z/VM and LPAR).
 * This obviously results in loss of network connectivity as /etc/network/interfaces no longer matches the network interface names configured by systemd.
 * The proposal is to generate udev rules on upgrade to preserve active interface names, in a very similar fashion to the no longer in use net-persistent-name generator.

[Test Case]

 * Install zesty from scratch in kvm/qemu, network interfaces should use enc* names.
 * Install yakkety, upgrade to zesty, network intefaces should use eth* names after upgrade and reboot.

[Regression Potential]

 * This solution is similar to previous upgrades to stable networking names for other types of network interfaces. This will make upgraded systems look different from freshly installed systems. For users aiming to have homogenious environments it is recommended to remove /etc/udev/rules.d/70-persistent-net.rules and readjust networking/daemon/firewall configurations to the new stable names enc*.

[Other Info]

 * Original bug report filed in debian.

Package: udev
Version: 232-20
Severity: important

Dear Maintainer,

systemd 232-20 introduce the patch to generate stable interface names
for virtio network interfaces on s390x. This is a good thing, and
those names should be used for new installations.

However, when upgrading existing virtual machines installations the
new udev causes interfaces to be renamed from eth0 -> enc1 thus
breaking networking configuration and possibly other configs
(e.g. daemons, firewalls etc).

Therefore on upgrade (but not clean installs) something like
persistent net rules should be generated to preserve ethX interface
names and thus not break networking configuration.

I will attach a proposed patch to achieve this shortly for review.

It is important to fix this in stretch such that upgrades to stretch
are flawless.

tags: added: s390x
Changed in systemd (Ubuntu):
importance: Undecided → High
status: New → Triaged
assignee: nobody → Dimitri John Ledkov (xnox)
milestone: none → ubuntu-17.05
Changed in ubuntu-release-notes:
status: New → Fix Released
description: updated

Hello Dimitri, or anyone else affected,

Accepted systemd into zesty-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/systemd/232-21ubuntu3 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed.Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in systemd (Ubuntu Zesty):
status: Triaged → Fix Committed
tags: added: verification-needed
Dimitri John Ledkov (xnox) wrote :

Install yakkety in an Ubuntu KVM with two network interfaces.
Enabled yakkety-proposed, did apt full-upgrade.
Executed do-release-upgrade.
It upgraded to zesty, including zesty-proposed.
At the end of do-release-upgrade accepted to reboot.
After reboot, the system come up fine, with network interface names preserved as eth0 and eht1, with networking correctly operating.
Removed /etc/udev/rules.d/70-persistent-net.rules and updated /etc/networking/interfaces to use enc1 (checked that this is the correct persistent name for eth0 using udevadm info -p /sys/class/net/eth0).
Updated initramfs and rebooted.
Still have networking, and now both interfaces use the stable device names enc1 and enc2.

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 232-21ubuntu3

---------------
systemd (232-21ubuntu3) zesty; urgency=medium

  [ Martin Pitt ]
  * resolved: Disable DNSSEC by default on stretch and zesty.
    Both Debian stretch and Ubuntu zesty are close to releasing, switch to
    DNSSEC=off by default for those. Users can still turn it back on with
    DNSSEC=allow-downgrade (or even "yes"). (LP: #1682499)

  [ Michael Biebl ]
  * journal: fix up syslog facility when forwarding native messages.
    Native journal messages (_TRANSPORT=journal) typically don't have a
    syslog facility attached to it. As a result when forwarding the
    messages to syslog they ended up with facility 0 (LOG_KERN).
    Apply syslog_fixup_facility() so we use LOG_USER instead. (Closes: #837893)
    (LP: #1682484)

  [ Dimitri John Ledkov ]
  * networkd: cherry-pick support for setting bridge port's priority.
    This is a useful feature/bugfix to improve feature parity of networkd with
    ifupdown. This matches netplan's expectations to be able to set bridge port's
    priorities via networked. This featue is to be used by netplan/MAAS/OpenStack.
    (LP: #1668347)
  * TEST-12: cherry-pick upstream fix for compat with new netcat-openbsd.
    (LP: #1672542)
  * udev.postinst: preserve virtio interfaces names on upgrades, on s390x.
    New udev generates stable interface names on s390x kvm instances, however, upon
    upgrades existing ethX names should be preserved to prevent breaking networking
    and software configurations. (Closes: #860246) (LP: #1682437)

 -- Dimitri John Ledkov <email address hidden> Thu, 13 Apr 2017 18:10:33 +0100

Changed in systemd (Ubuntu Zesty):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for systemd has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package systemd - 232-21ubuntu3

---------------
systemd (232-21ubuntu3) zesty; urgency=medium

  [ Martin Pitt ]
  * resolved: Disable DNSSEC by default on stretch and zesty.
    Both Debian stretch and Ubuntu zesty are close to releasing, switch to
    DNSSEC=off by default for those. Users can still turn it back on with
    DNSSEC=allow-downgrade (or even "yes"). (LP: #1682499)

  [ Michael Biebl ]
  * journal: fix up syslog facility when forwarding native messages.
    Native journal messages (_TRANSPORT=journal) typically don't have a
    syslog facility attached to it. As a result when forwarding the
    messages to syslog they ended up with facility 0 (LOG_KERN).
    Apply syslog_fixup_facility() so we use LOG_USER instead. (Closes: #837893)
    (LP: #1682484)

  [ Dimitri John Ledkov ]
  * networkd: cherry-pick support for setting bridge port's priority.
    This is a useful feature/bugfix to improve feature parity of networkd with
    ifupdown. This matches netplan's expectations to be able to set bridge port's
    priorities via networked. This featue is to be used by netplan/MAAS/OpenStack.
    (LP: #1668347)
  * TEST-12: cherry-pick upstream fix for compat with new netcat-openbsd.
    (LP: #1672542)
  * udev.postinst: preserve virtio interfaces names on upgrades, on s390x.
    New udev generates stable interface names on s390x kvm instances, however, upon
    upgrades existing ethX names should be preserved to prevent breaking networking
    and software configurations. (Closes: #860246) (LP: #1682437)

 -- Dimitri John Ledkov <email address hidden> Thu, 13 Apr 2017 18:10:33 +0100

Changed in systemd (Ubuntu):
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers