"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>
>

Reply via email to