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
Touch seeded packages, which is subscribed to ifupdown in Ubuntu.
https://bugs.launchpad.net/bugs/1629972

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

Status in MAAS:
  Triaged
Status in ifupdown package in Ubuntu:
  Fix Released
Status in ifupdown source package in Xenial:
  In Progress
Status in ifupdown source package in Yakkety:
  Fix Committed
Status in ifupdown package in Debian:
  New

Bug description:
  === 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

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

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to