Thanks Guus.  I can confirm that the following config for the bridged
interface indeed resolves the problem for me:

auto lan0
no-auto-down lan0
iface lan0 inet dhcp
  bridge_ports ens3
  bridge_stp off
  bridge_maxwait 5


I should note that this workaround wasn't required in wheezy and prior (as
noted in my original report, this issue first shows up in jessie), and I
doubt the aoe module was handling teardown any more cleanly back then than
it is today, so it's still a puzzle as to why this broke in the first place.

Thanks again.

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