Bug#931636: doesnt bring up virtio interface link with kernel 5.2

Marc Haber mh+debian-bugs at zugschlus.de
Wed Jul 10 07:50:49 BST 2019


On Tue, Jul 09, 2019 at 09:48:43PM +0200, Michael Biebl wrote:
> Am 09.07.19 um 21:41 schrieb Marc Haber:
> > On Tue, Jul 09, 2019 at 07:16:07PM +0200, Michael Biebl wrote:
> >> Can you test those patches to verify that they fix your issue?
> > 
> > Even an unpatched systemd 241-6 fails building in my sid build chroot:
> > 
> > 433/514 test-bus-watch-bind                     FAIL     0.03 s (killed by signal 6 SIGABRT)
> > 333/514 test-fd-util                            FAIL     0.03 s (killed by signal 6 SIGABRT)
> > 331/514 test-fs-util                            FAIL     0.03 s (killed by signal 6 SIGABRT)
> > 
> > Any special reason for that? The build machine has 8 Gig of RAM and 10
> > Gig of disk free.
> 
> No idea why it fails on your particular system. You'd probably have to
> debug that on-site.
> Or you can skip the test-suite via the "nocheck" build flag.
> dpkg-buildpackage -Pnocheck
> or export DEB_BUILD_OPTIONS=nocheck

systemd is still a bitch to build, its tests don't like being run in an
overlayfs chroot. I remember filing a bug about that and getting a
totally unsatisfying reaction, but I can neither find the report on
github nor in the BTS. Even in a plain chroot, one test fails, but I was
eventually able to build with "nocheck".

I therefore can now confirm that the attached patch fixes the issue for
me in system_241-6.

Greetings
Marc

-- 
-----------------------------------------------------------------------------
Marc Haber         | "I don't trust Computers. They | Mailadresse im Header
Leimen, Germany    |  lose things."    Winona Ryder | Fon: *49 6224 1600402
Nordisch by Nature |  How to make an American Quilt | Fax: *49 6224 1600421
-------------- next part --------------
--- a/src/network/networkd-link.c
+++ b/src/network/networkd-link.c
@@ -1816,6 +1816,9 @@ static int link_configure_addrgen_mode(L
         assert(link->manager);
         assert(link->manager->rtnl);
 
+        if (!socket_ipv6_is_supported())
+                return 0;
+
         log_link_debug(link, "Setting address genmode for link");
 
         r = sd_rtnl_message_new_link(link->manager->rtnl, &req, RTM_SETLINK, link->ifindex);
@@ -1917,31 +1920,6 @@ static int link_up(Link *link) {
                         return log_link_error_errno(link, r, "Could not set MAC address: %m");
         }
 
-        if (link_ipv6_enabled(link)) {
-                r = sd_netlink_message_open_container(req, IFLA_AF_SPEC);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not open IFLA_AF_SPEC container: %m");
-
-                /* if the kernel lacks ipv6 support setting IFF_UP fails if any ipv6 options are passed */
-                r = sd_netlink_message_open_container(req, AF_INET6);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not open AF_INET6 container: %m");
-
-                if (!in_addr_is_null(AF_INET6, &link->network->ipv6_token)) {
-                        r = sd_netlink_message_append_in6_addr(req, IFLA_INET6_TOKEN, &link->network->ipv6_token.in6);
-                        if (r < 0)
-                                return log_link_error_errno(link, r, "Could not append IFLA_INET6_TOKEN: %m");
-                }
-
-                r = sd_netlink_message_close_container(req);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not close AF_INET6 container: %m");
-
-                r = sd_netlink_message_close_container(req);
-                if (r < 0)
-                        return log_link_error_errno(link, r, "Could not close IFLA_AF_SPEC container: %m");
-        }
-
         r = netlink_call_async(link->manager->rtnl, NULL, req, link_up_handler,
                                link_netlink_destroy_callback, link);
         if (r < 0)
@@ -3029,11 +3007,9 @@ static int link_configure(Link *link) {
                         return r;
         }
 
-        if (socket_ipv6_is_supported()) {
-                r = link_configure_addrgen_mode(link);
-                if (r < 0)
-                        return r;
-        }
+        r = link_configure_addrgen_mode(link);
+        if (r < 0)
+                return r;
 
         return link_configure_after_setting_mtu(link);
 }


More information about the Pkg-systemd-maintainers mailing list