When br0 is restarted it triggers a uevent upon deleting the br0 interface. The /lib64/udev/net.sh seems to do try stop the device at the end: # If we're stopping then sleep for a bit in-case a daemon is monitoring # the interface. This to try and ensure we stop after they do. [ "${ACTION}" == "stop" ] && sleep 2 IN_HOTPLUG=1 "${SCRIPT}" --quiet "${ACTION}" The result here seems to be that after the sleep it will try to stop the interface again which is already restarted, which again triggers another uevent and it ends up in an endless loop, which runs '/etc/init.d/net.br0 stop' every 2 seconds. A workaround is to add br* to the static list of interfacse to ignore. I don't think thats a good longtime solution though. I suppose that bond and vlan interfacs should go there too in that case. --- /lib64/udev/net.sh.orig 2008-10-01 13:10:10.000000000 +0200 +++ /lib64/udev/net.sh 2008-10-01 13:10:22.000000000 +0200 @@ -12,7 +12,7 @@ # ignore interfaces that are registered after being "up" (?) case ${IFACE} in - ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*) + ppp*|ippp*|isdn*|plip*|lo*|irda*|dummy*|ipsec*|tun*|tap*|br*) exit 0 ;; esac
Matthias, any input here? It looks like something that should be fixed in udev to me.
The problem with all these devices is: user may rename them to any allowed name, so our name-based strategy will fail in these cases. Do we have a better plan? In between: I added this to udev-130-r1. @Cardoe: Do we also need to backport it to any stable or soon to be stabled version for openrc stablization?
(In reply to comment #2) > The problem with all these devices is: user may rename them to any allowed > name, so our name-based strategy will fail in these cases. > Do we have a better plan? Disable hotplugging of services by default? > In between: I added this to udev-130-r1. > > @Cardoe: > Do we also need to backport it to any stable or soon to be stabled version for > openrc stablization? I would like to get udev starting in the boot runlevel before we start thinking about getting openrc stable. This should be done today or tomorrow from the openrc end.
(In reply to comment #3) > I would like to get udev starting in the boot runlevel before we start thinking > about getting openrc stable. This should be done today or tomorrow from the > openrc end. This is now done - grab the udev script on bug #240984
(In reply to comment #2) > The problem with all these devices is: user may rename them to any allowed > name, so our name-based strategy will fail in these cases. > Do we have a better plan? Another viable solution is to alter the net scripts so they don't destroy the interface on stop. However, this does mean that any interfaces where options can only be set on interface creation will no longer work.
Looks like all we needed to get done has been done. Newer udev and newer OpenRC are available in tree.