[systemd-devel] [PATCH] networkd: fix systemd-networkd-wait-online with multiple NICs

Michael Marineau michael.marineau at coreos.com
Thu Apr 2 15:48:28 PDT 2015


On Thu, Apr 2, 2015 at 3:08 PM, Nick Owens <mischief at offblast.org> wrote:
> hi, sorry for the delay.
>
> from http://www.freedesktop.org/software/systemd/man/systemd-networkd-wait-online.service.html:
>
> "By default, it will wait for all links it is aware of and which are
> managed by systemd-networkd.service(8) to be fully configured or
> failed, *and for at least one link to gain a carrier.*".
>
> the import part here is the end of the sentence. without this patch,
> systemd-networkd-wait-online will block until all configured
> interfaces have carrier.. you can reproduce this by running
> systemd-networkd in qemu with two ethernet interfaces, and issue 'info
> network' and then 'set_link <if> down' to simulate no carrier. then
> you can run systemd-networkd-wait-online, and observe that it will
> block until both interfaces are up, not just one.
>
> nick
>
> On Wed, Mar 25, 2015 at 10:53 PM, Andrei Borzenkov <arvidjaar at gmail.com> wrote:
>> On Wed, Mar 25, 2015 at 11:49 PM,  <mischief at offblast.org> wrote:
>>> From: mischief <mischief at offblast.org>
>>>
>>> when checking interface status, systemd-networkd-wait-online
>>> will continue to wait if any interface is still configuring or
>>> being processed by udev. this patch allows it to return if any
>>> one interface is degraded/routable, as per the manual.
>>
>> But current behavior is exactly what manual says: "By default, it will
>> wait for all links it is aware of and which are managed by
>> systemd-networkd.service(8) to be fully configured or failed". Or do I
>> miss something?

It is worth noting that there may be some issues with tracking
interface states in networkd, there appear to be ways to get an
interface stuck in a 'configuring' state despite the fact that the
interface has no network config and/or has no carrier.


More information about the systemd-devel mailing list