As ovsdb-server creates pid file before unixctl socket, waiting
for pid file creation is not enough.  Fix the race by retrying
with "version" command before assuming the server is up.

Signed-off-by: YAMAMOTO Takashi <yamam...@ovn.org>
---
 tests/ovsdb-server.at | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
index 7b7fb40..0ed7e87 100644
--- a/tests/ovsdb-server.at
+++ b/tests/ovsdb-server.at
@@ -270,6 +270,7 @@ AT_CHECK([kill -SEGV `cat ovsdb-server.pid`])
 OVS_WAIT_WHILE([kill -0 `cat old.pid`])
 OVS_WAIT_UNTIL(
   [test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`])
+OVS_WAIT_UNTIL([ovs-appctl -t ovsdb-server version])
 AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/list-dbs],
   [0], [constraints
 ordinals
@@ -301,6 +302,7 @@ AT_CHECK([kill -SEGV `cat ovsdb-server.pid`])
 OVS_WAIT_WHILE([kill -0 `cat old.pid`])
 OVS_WAIT_UNTIL(
   [test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`])
+OVS_WAIT_UNTIL([ovs-appctl -t ovsdb-server version])
 AT_CHECK([ovs-appctl -t ovsdb-server ovsdb-server/list-dbs],
   [0], [ordinals
 ])
@@ -450,6 +452,7 @@ AT_CHECK([kill -SEGV `cat ovsdb-server.pid`])
 OVS_WAIT_WHILE([kill -0 `cat old.pid`])
 OVS_WAIT_UNTIL(
   [test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`])
+OVS_WAIT_UNTIL([ovs-appctl -t ovsdb-server version])
 OVS_WAIT_UNTIL([test -S socket1])
 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
 AT_CLEANUP
@@ -484,6 +487,7 @@ AT_CHECK([kill -SEGV `cat ovsdb-server.pid`])
 OVS_WAIT_WHILE([kill -0 `cat old.pid`])
 OVS_WAIT_UNTIL(
   [test -s ovsdb-server.pid && test `cat ovsdb-server.pid` != `cat old.pid`])
+OVS_WAIT_UNTIL([ovs-appctl -t ovsdb-server version])
 AT_CHECK([test ! -e socket1])
 OVS_APP_EXIT_AND_WAIT([ovsdb-server])
 AT_CLEANUP
-- 
2.5.4 (Apple Git-61)

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

Reply via email to