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

Reply via email to