"I'm not sure how you mount the AoE device, but most likely there is nothing declaring a relationship between it and the bridge interface. So systemd will not unmount the device before trying to stop the network."
AoE does have a mechanism to limit its use to specific interface(s) from both the server side (vblade-persist) and from the client side (aoe-interfaces, part of the aoetools package), and the aoe-stat util (also a part of aoetools) will show you the interface in use as well: # aoe-stat e0.0 1.572GB lan0 1024 up e0.1 2.147GB lan0 1024 up Note that the third field is the interface name, using my non-standard bridge interface of 'lan0'. Aside from that, the device simply shows up like any other block device in linux (physical disk, loopback device, etc.) in /dev/etherd (in the above case, I have two block devices, /dev/etherd/e0.0 and /dev/etherd/e0.1). On Sun, Mar 19, 2017 at 10:54 AM, Guus Sliepen <g...@debian.org> wrote: > On Sun, Mar 12, 2017 at 08:36:19PM +0100, Michael Biebl wrote: > > > > The stop job for 'Raise network interfaces' fails to complete when > > > shutting down or rebooting a fresh stretch install when certain > > > conditions are met: > > > > > > * ATA-over-Ethernet (aoe) kernel module is loaded, and AOE devices are > > > listed in /dev/etherd > > > * Interface bridging via brctl is used > > > > > > If either one of these conditions are not satisfied, reboot or shutdown > > > will proceed without issue. If both are present, 'Raise network > > > interfaces' will repeatedly try to stop, raising the timeout on > > > occasion, but will never complete. This means an easy workaround is > > > ensuring the 'aoe' kernel module is removed before shutting down or > > > rebooting, if no aoe disks are in use at that time, but that can't be > > > guaranteed in all situations. > > > > This looks like something which needs to be looked at by the ifupdown > > maintainter, so reassigning accordingly. > > This seems to be an issue with the AoE implementation in the kernel. It > correctly keeps an interface busy when an AoE device is mounted over it, > but it handles the teardown very badly. > > I'm not sure how you mount the AoE device, but most likely there is > nothing declaring a relationship between it and the bridge interface. So > systemd will not unmount the device before trying to stop the network. > > Ifupdown in turn will call brctl delif. I see that this causes the brctl > command to hang. The kernel will repeatedly log this: > > unregister_netdevice: waiting for br0 to become free. Usage count = 1 > > Meanwhile br0 has disappeared from the output of ifconfig. Also, any > access to the mounted device will also hang (because the slaves of the > bridge are down at this point). > > Either you have to ensure that systemd unmounts the device before > bringing down the network, or as a workaround you can tell ifupdown to > keep the bridge interface up at shutdown time, by adding something like > this to /etc/network/interfaces: > > no-auto-down br0 > > -- > Met vriendelijke groet / with kind regards, > Guus Sliepen <g...@debian.org> >