Bug#878811: dummy interface in bridge sticks in "configuring", leading to degraded system

Marc Haber mh+debian-packages at zugschlus.de
Mon Oct 16 20:57:15 BST 2017


Package: systemd
Version: 235-2.0~zgSID+1
Severity: normal
Tags: upstream patch
Forwarded: https://github.com/systemd/systemd/issues/6961

This is upstream issue 6961, where a dummy interface configured into a
bridge gets stuck in "configuring" state, with the usual consequences of
the network never getting "online", ultimately leading to a degraded
system. Having a dummy interface in a bridge is a rather common idiom to
force the bridge "up" even if there is nothing really "connected" yet.

I can confirm that the attached patch fixes the issue in systemd 235-2,
and that it applies with minimal fuzz also applies to the systemd
version in Debian stretch. Afaik, Susant Sahani, the developer of the
patch, has submitted the patch, but it is not yet linked to the issue.

Please consider applying this in sid and in a future stretch point
release. I can send you the patch for systemd 232 as well, but it is
really stupidly created by quilt refresh.

Greetings
Marc

-- Package-specific info:

-- System Information:
Debian Release: buster/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 4.13.7-zgsrv20080 (SMP w/4 CPU cores; PREEMPT)
Locale: LANG=de_DE.utf8, LC_CTYPE=de_DE.utf8 (charmap=UTF-8), LANGUAGE=en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages systemd depends on:
ii  adduser         3.116
ii  libacl1         2.2.52-3+b1
ii  libapparmor1    2.11.0-11
ii  libaudit1       1:2.8.1-1
ii  libblkid1       2.30.2-0.1
ii  libc6           2.24-17
ii  libcap2         1:2.25-1.1
ii  libcryptsetup4  2:1.7.5-1
ii  libgcrypt20     1.7.9-1
ii  libgpg-error0   1.27-3
ii  libidn11        1.33-2
ii  libip4tc0       1.6.1-2
ii  libkmod2        24-1
ii  liblz4-1        0.0~r131-2+b1
ii  liblzma5        5.2.2-1.3
ii  libmount1       2.30.2-0.1
ii  libpam0g        1.1.8-3.6
ii  libseccomp2     2.3.1-2.1
ii  libselinux1     2.7-2
ii  libsystemd0     235-2.0~zgSID+1
ii  mount           2.30.2-0.1
ii  procps          2:3.3.12-3
ii  util-linux      2.30.2-0.1

Versions of packages systemd recommends:
ii  dbus            1.11.20-1
ii  libpam-systemd  235-2.0~zgSID+1

Versions of packages systemd suggests:
pn  policykit-1        <none>
pn  systemd-container  <none>

Versions of packages systemd is related to:
pn  dracut           <none>
ii  initramfs-tools  0.130
ii  udev             235-2.0~zgSID+1

-- no debconf information
-------------- next part --------------
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -94,6 +94,10 @@ static bool link_ipv4ll_enabled(Link *li
 }
 
 static bool link_ipv6ll_enabled(Link *link) {
+        _cleanup_free_ char *disable_ipv6 = NULL;
+        const char *p = NULL;
+        int r;
+
         assert(link);
 
         if (!socket_ipv6_is_supported())
@@ -104,6 +108,12 @@ static bool link_ipv6ll_enabled(Link *li
 
         if (!link->network)
                 return false;
+        p = strjoina("/proc/sys/net/ipv6/conf/", link->ifname, "/disable_ipv6");
+        r = read_one_line_file(p, &disable_ipv6);
+        if (r >= 0) {
+                if (streq(disable_ipv6, "1"))
+                        return false;
+        }
 
         return link->network->link_local & ADDRESS_FAMILY_IPV6;
 }
@@ -1694,6 +1704,9 @@ static int link_up_handler(sd_netlink *r
                    brought up later */
                 log_link_warning_errno(link, r, "Could not bring up interface: %m");
 
+        printf("link_up_handler= %s\n", link->ifname);
+        link_check_ready(link);
+
         return 1;
 }
 


More information about the Pkg-systemd-maintainers mailing list