When running ovsdb-server under gdb, there is a race that ovs-vsctl
command can be called before ovsdb-server is fully launched. This will
cause ovs-vsctl to fail.  This patch fixes this by delay issuing
the ovs-vsctl command until ovsdb-server is fully launched.

Signed-off-by: Andy Zhou <az...@nicira.com>

---
v1->v2:
       add a small delay before going to wait loop
       in wait loop, use sleep 1, instead of sleep 0
---
 tutorial/ovs-sandbox | 12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
index 251f021..ebee4a9 100755
--- a/tutorial/ovs-sandbox
+++ b/tutorial/ovs-sandbox
@@ -235,6 +235,18 @@ run ovsdb-tool create conf.db "$schema"
 rungdb $gdb_ovsdb ovsdb-server --detach --no-chdir --pidfile -vconsole:off 
--log-file \
     --remote=punix:"$sandbox"/db.sock
 
+#Add a small delay to allow ovsdb-server to launch.
+sleep 0.1
+
+#Wait for ovsdb-server to finish launching.
+if test ! -e "$sandbox"/db.sock; then
+    echo -n "Waiting for ovsdb-server to start..."
+    while test ! -e "$sandbox"/db.sock; do
+        sleep 1;
+    done
+    echo "  Done"
+fi
+
 # Initialize database.
 run ovs-vsctl --no-wait -- init
 
-- 
1.9.1

_______________________________________________
dev mailing list
dev@openvswitch.org
http://openvswitch.org/mailman/listinfo/dev

Reply via email to