Bug#869995: interface stays in "routable (configuring)", systemd-networkd-wait-online.service in failed state

Marc Haber mh+debian-bugs at zugschlus.de
Mon Sep 25 07:50:33 BST 2017


tags #869995 patch
thanks

I have worked in the last days with Susant Sahani to isolate this
issue and can confirm that his patches:
https://github.com/systemd/systemd/pull/6907/commits/e6800d3cfb48542634c25c24a6aae7587d97eb4f
https://github.com/systemd/systemd/pull/6907/commits/c46530942bc0837379eae8bfd48b4673c46a6e0c
do fix the issue for me.

A quilt file for the Debian package is attached, I can confirm that
this, applied to systemd 234-3, solves the issue on Debian.

Greetings
Marc
-------------- next part --------------
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -930,7 +930,10 @@ int config_parse_address_flags(const cha
 bool address_is_ready(const Address *a) {
         assert(a);
 
-        return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED));
+	if (a->family == AF_INET6)
+		return !(a->flags & (IFA_F_TENTATIVE));
+	else
+		return !(a->flags & (IFA_F_TENTATIVE | IFA_F_DEPRECATED));
 }
 
 int config_parse_router_preference(const char *unit,
--- a/src/network/networkd-ndisc.c
+++ b/src/network/networkd-ndisc.c
@@ -186,6 +186,10 @@ static void ndisc_router_process_autonom
                 return;
         }
 
+        /* The preferred lifetime is never greater than the valid lifetime */
+        if (lifetime_preferred > lifetime_valid)
+                return;
+
         r = address_new(&address);
         if (r < 0) {
                 log_link_error_errno(link, r, "Could not allocate address: %m");


More information about the Pkg-systemd-maintainers mailing list