<html>
    <head>
      <base href="https://bugs.freedesktop.org/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - Bonding (active-backup) Does Not Play Well with WiFi Links (wpa_supplicant)"
   href="https://bugs.freedesktop.org/show_bug.cgi?id=89811">89811</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>Bonding (active-backup) Does Not Play Well with WiFi Links (wpa_supplicant)
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>systemd
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>Other
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>All
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>medium
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>general
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>systemd-bugs@lists.freedesktop.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>freedesktop@goodbit.net
          </td>
        </tr>

        <tr>
          <th>QA Contact</th>
          <td>systemd-bugs@lists.freedesktop.org
          </td>
        </tr></table>
      <p>
        <div>
        <pre>Created <span class=""><a href="attachment.cgi?id=114701" name="attach_114701" title="Complete journalctl -b">attachment 114701</a> <a href="attachment.cgi?id=114701&action=edit" title="Complete journalctl -b">[details]</a></span>
Complete journalctl -b

There is a troubling race condition between netdev bond devices and WiFi,
where the WiFi component refuses to come up without coaxing.

I found a reference to a similar report in the systemd developer mailing list:
(Question 3)
<a href="http://lists.freedesktop.org/archives/systemd-devel/2015-March/028971.html">http://lists.freedesktop.org/archives/systemd-devel/2015-March/028971.html</a>

My configuration, and a log snippet:
(Arch Linux system, running linux-2.19.3 and systemd v219)

===========
==> /etc/systemd/network/10-bond0.netdev <==
[NetDev]
Name=bond0
Kind=bond

==> /etc/systemd/network/20-eno1.network <==
[Match]
Name=eno1

[Network]
Bond=bond0

==> /etc/systemd/network/21-wlp2s0.network <==
[Match]
Name=wlp2s0

[Network]
Bond=bond0

==> /etc/systemd/network/32-dhcp.network <==
[Match]
Name=bond0

[Network]
DHCP=v4

[DHCP]
UseDomains=true

==> /etc/modprobe.d/bonding.conf <==
options bonding mode=active-backup
options bonding primary=eno1
options bonding miimon=1000
options bonding updelay=2000
options bonding downdelay=8000

--- journalctl -b | grep networkd ---
Mar 29 10:43:15 e5550 systemd-networkd[341]: bond0           : netdev ready
Mar 29 10:43:15 e5550 systemd-networkd[341]: Enumeration completed
Mar 29 10:43:15 e5550 systemd-networkd[341]: wlp2s0          : wlp2s0         
: could not join netdev: Operation not permitted
Mar 29 10:43:15 e5550 systemd-networkd[341]: wlp2s0          : failed
Mar 29 10:43:15 e5550 systemd-networkd[341]: eno1            : link configured
Mar 29 10:43:18 e5550 systemd-networkd[341]: eno1            : gained carrier
Mar 29 10:43:18 e5550 systemd-networkd[341]: wlp2s0          : gained carrier
Mar 29 10:43:19 e5550 systemd-networkd[341]: bond0           : gained carrier
Mar 29 10:43:19 e5550 systemd-networkd[341]: bond0           : DHCPv4 address
192.168.0.54/24 via 192.168.0.2
Mar 29 10:43:19 e5550 systemd-networkd[341]: bond0           : link configured

===========

As reported earlier, an orderly restart of the networking daemon clears the
problem

# ip link set eno1 down
# ip link set wlp2s0 down
# systemctl restart systemd-networkd
(And now we are golden)

Here is a hack workaround which might prove a clue as to the root cause.
If I force wpa_supplicant to come up after systemd-networkd, e.g.

===========
$ cat
/etc/systemd/system/wpa_supplicant\@wlp2s0.service.d/customdependency.conf
[Unit]
After=systemd-networkd.service
===========

I can get the wireless interface to come up fairly reliably with every reboot.

My eventual goal is to stack a bridge device on top of bond0,
but I cannot get this to work no matter what.
I think the root cause of this race condition is what is blocking me.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are the QA Contact for the bug.</li>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>