[ovs-dev] [PATCH] ovs-sandbox: add delay before running ovs-vsctl
Ben Pfaff
blp at nicira.com
Tue Apr 14 15:02:44 UTC 2015
On Mon, Apr 13, 2015 at 03:03:53PM -0700, Andy Zhou wrote:
> 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.
>
> CC: Russell Bryant <rbryant at redhat.com>
> Signed-off-by: Andy Zhou <azhou at nicira.com>
> ---
> tutorial/ovs-sandbox | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/tutorial/ovs-sandbox b/tutorial/ovs-sandbox
> index 251f021..4a0b014 100755
> --- a/tutorial/ovs-sandbox
> +++ b/tutorial/ovs-sandbox
> @@ -235,6 +235,14 @@ 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
>
> +if test ! -e "$sandbox"/db.sock; then
> + echo -n "Waiting for ovsdb-server to start..."
> + while test ! -e "$sandbox"/db.sock; do
> + sleep 0;
> + done
> + echo " Done"
> +fi
Personally I'd put "sleep 0.1" above the loop and then sleep 1 inside
it, like in tests/ovs-macros.at:
ovs_wait () {
# First try a quick sleep, so that the test completes very quickly
# in the normal case. POSIX doesn't require fractional times to
# work, so this might not work.
sleep 0.1
ovs_wait_cond && exit 0
# Then wait up to 10 seconds.
for d in 0 1 2 3 4 5 6 7 8 9; do
sleep 1
ovs_wait_cond && exit 0
done
exit 1
}
More information about the dev
mailing list