I've adjusted the description, including SRU template of this bug to
better fit what we found out and the solution that was applied.

** Description changed:

+ === Begin SRU Template ===
+ [Impact]
+ The systemd networking.service unit will bring down the loopback device (lo)
+ when it is stopped.  This behavior differs from the behavior in other
+ Ubuntu releases (upstart's networking.conf), where 'lo' is not taken down.
+ 
+ The problem that was seen was that iscsi root over ipv6 would hang on
+ shutdown.  
+ 
+ [Test Case]
+ Test is fairly simple and can be demonstrated in lxc container.
+ The key is really that the lo device should not have its link set down
+ after stopping networking.service.  So, below:
+   out=$(ip address show dev lo up); [ -n "$out" ] && echo "$out" || echo empty
+ 
+ should not show 'empty', but should have LOOPBACK,UP,LOWER in its
+ output.
+ 
+ $ release=yakkety; name=y1
+ $ lxc launch ubuntu-daily:$release $name
+ $ sleep 10
+ $ lxc exec $name /bin/bash
+ 
+ ## show only things that are up (note output has LOOPBACK,UP,LOWER_UP)
+ % ip link show dev lo
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode 
DEFAULT group default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+ 
+ % ip address show dev lo up
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+     inet 127.0.0.1/8 scope host lo
+        valid_lft forever preferred_lft forever
+     inet6 ::1/128 scope host
+        valid_lft forever preferred_lft forever
+ 
+ ## Stop the service and show lo link is down (no 'UP' or 'LOWER_UP').
+ % systemctl stop networking.service
+ % ip link show dev lo
+ 1: lo: <LOOPBACK> mtu 65536 qdisc noqueue state DOWN mode DEFAULT group 
default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+ % out=$(ip address show dev lo up); [ -n "$out" ] && echo "$out" || echo empty
+ empty
+ 
+ ## Now enable proposed, install update, reboot and show.
+ % rel=$(lsb_release -sc)
+ % echo "deb http://archive.ubuntu.com/ubuntu $rel-proposed main" |
+     sudo tee /etc/apt/sources.list.d/proposed.list
+ % sudo apt update -qy && sudo apt install -qy ifupdown </dev/null
+ % dpkg-query --show ifupdown
+ ifupdown 0.8.13ubuntu3
+ % sudo reboot
+ 
+ ## in rebooted system
+ % ip link show dev lo
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode 
DEFAULT group default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+ % ip address show dev lo up
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+     inet 127.0.0.1/8 scope host lo
+        valid_lft forever preferred_lft forever
+     inet6 ::1/128 scope host
+        valid_lft forever preferred_lft forever
+ % systemctl stop networking.service
+ % ip link show dev lo
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode 
DEFAULT group default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+ % out=$(ip address show dev lo up); [ -n "$out" ] && echo "$out" || echo empty
+ 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group 
default qlen 1
+     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
+     inet 127.0.0.1/8 scope host lo
+        valid_lft forever preferred_lft forever
+     inet6 ::1/128 scope host
+        valid_lft forever preferred_lft forever
+ 
+ 
+ [Regression Potential]
+ Should be pretty low.  zesty and  yakkety-proposed have this.
+ Taking down 'lo' is often cause of problems, and never the solution to
+ problems as far as I'm aware.
+ 
+ [Other Info]
+ 
+ === End SRU Template ===
+ 
  With the switch to systemd, all support for iscsi root (and other)
  filesystems disappeared, since shutdown yanks the rug out from under us.
  
  Rather than just relying on /etc/iscsi/iscsi.initramfs (which d-i
  creates..), the DEV check should be expanded to include iscsi devices,
  and networking.service ExecStop should honor those checks.
  
  Related bugs:
-   * bug 1229458: grub2 needed changes
-   * bug 1621615: network not configured when ipv6 netbooted into cloud-init
-   * bug 1621507: ipv6 network boot does not work
- 
- [Impact]
- 
- With the changes from the above, the iscsi root (at least in the ipv6
- case) gets disconneceted prior to clean shutdown (ifdown downs the
- interface), resulting in a failure to enlist, commission, or deploy
- cleanly under MAAS. (and a failure to cleanly unmount the root
- filesystem when it is over iscsi.)
- 
- [Test Case]
- 
- Given a MAAS 2.0 installation, and the packages in the other bugs,
- attempt to enlist, commission, or deploy a host with xenial.
- 
- [Regression potential]
- 
- This restores the pre-xenial behavior of not shutting down the interface
- if there are network drives at the time that neworking is stopped
- (making it a no-op.)  The additional change is to detect "/dev/disk/by-
- path/*-iscsi-*" as a network disk, replacing the check for the existence
- of /etc/iscsi/iscsi.initramfs, which was only created by debian-
- installer (and maas until recently).
+   * bug 1229458: grub2 needed changes
+   * bug 1621615: network not configured when ipv6 netbooted into cloud-init
+   * bug 1621507: ipv6 network boot does not work

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1629972

Title:
  networking stop incorrectly disconnects from (network) root filesystem

To manage notifications about this bug go to:
https://bugs.launchpad.net/maas/+bug/1629972/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to