Hi folks, if /etc/lxc/default.conf defines 2 or more bridges, then I get a ton of warnings:
# service lxc restart [....] Stopping LXC containers: :[....] Starting LXC autoboot containers: :/usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator /usr/lib/x86_64-linux-gnu/lxc/lxc-containers: 63: [: /sys/class/net/br0: unexpected operator AFAICS $BRNAME (set in /usr/lib/x86_64-linux-gnu/lxc/lxc-containers:57) contains all bridge names seperated by space, which breaks the test in line 63. Attached is a suggested fix. Surely not beautiful, but it seems to work better. Hope this helps. Regards Harri -- aixigo AG, Karl-Friedrich-Strasse 68, 52072 Aachen, Germany phone: +49 241 559709-79, fax: +49 241 559709-99 eMail: [email protected], web: http://www.aixigo.de Amtsgericht Aachen - HRB 8057, Vorstand: Erich Borsch, Christian Friedrich, Tobias Haustein, Vors. des Aufsichtsrates: Prof. Dr. Ruediger von Nitzsch
Signed-off-by: Harald Dunkel <[email protected]> Index: lxc-1.1.5.1/config/init/common/lxc-containers.in =================================================================== --- lxc-1.1.5.1.orig/config/init/common/lxc-containers.in +++ lxc-1.1.5.1/config/init/common/lxc-containers.in @@ -51,7 +51,7 @@ fi # to start wait_for_bridge() { - local BRNAME try flags + local BRNAME try flags br [ -f "$sysconfdir"/lxc/default.conf ] || { return 0; } BRNAME=`grep '^[ ]*lxc.network.link' "$sysconfdir"/lxc/default.conf | sed 's/^.*=[ ]*//'` @@ -60,11 +60,12 @@ wait_for_bridge() fi for try in `seq 1 30`; do - if [ -r /sys/class/net/$BRNAME/flags ]; then - read flags < /sys/class/net/$BRNAME/flags - [ $((flags & 0x1)) -eq 1 ] && { return 0; } - fi - sleep 1 + for br in ${BRNAME}; do + [ -r /sys/class/net/${br}/flags ] || { sleep 1; continue 2; } + read flags < /sys/class/net/${br}/flags + [ $((flags & 0x1)) -eq 1 ] || { sleep 1; continue 2; } + done + return 0 done }
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
