Re: kernel hangs when trying to remove a bridge

From: Stephen Hemminger
Date: Mon Jul 31 2006 - 14:20:14 EST


On Sat, 29 Jul 2006 16:42:04 +0100
Rodrigo Ventura <yoda@xxxxxxxxxxxxxx> wrote:

>
> I'm using kernel 2.6.16 (-gentoo-r13 actually). A bridge iface br0 is setup
> using eth1 and eth0.1 (VLAN) as slaves. To bring br0, what I do is to remove
> the slaves from the bridge first, "ip link set dev br0 down" next, followed
> by the brctl command to remove the bridge. What happens is that it seems it
> tryes to destroy the bridge iface, and then hangs, with dmesg complaining,
> periodically, about once a second, something like:
>
> unregister_netdevice: waiting for br0 to become free. Usage count = 1
> unregister_netdevice: waiting for br0 to become free. Usage count = 1
> unregister_netdevice: waiting for br0 to become free. Usage count = 1
> ...
>
> I say it partially hangs because commands like ifconfig hang (ps state=Disk
> busy)...
> To reboot the machine, a HARD reset is required, since, the shutdown process
> hangs...
>

Some broken protocol in the kernel, incremented a refcount but forgot
to cleanup when notified on device removal.

There was a bug in the VLAN code that did that, not sure which version
it was fixed in.

Do you have IPV6 installed (as a module)?
In some kernel versions, IPV6 has a problem with device ref counting, and
leaves a dangling reference.


--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/