[ovs-dev] [PATCH 6/6] Disable "merge updates on backlogged connections" test

anton.ivanov at cambridgegreys.com anton.ivanov at cambridgegreys.com
Mon Jul 6 08:20:14 UTC 2020


From: Anton Ivanov <anton.ivanov at cambridgegreys.com>

The merge on backlogged behavior is predicated on prohibiting
processing of incoming transactions while there is an outstanding
backlog.

This behavior does not make sense if the xmit/recv is async from
actual business logic.

Signed-off-by: Anton Ivanov <anton.ivanov at cambridgegreys.com>
---
 tests/ovsdb-server.at | 190 +++++++++++++++++++++---------------------
 1 file changed, 95 insertions(+), 95 deletions(-)

diff --git a/tests/ovsdb-server.at b/tests/ovsdb-server.at
index 0b15758f2..e389d721a 100644
--- a/tests/ovsdb-server.at
+++ b/tests/ovsdb-server.at
@@ -1128,103 +1128,103 @@ AT_KEYWORDS([ovsdb server convert needs-conversion cluster])
 ovsdb_check_online_conversion cluster
 AT_CLEANUP
 
-AT_SETUP([ovsdb-server combines updates on backlogged connections])
-on_exit 'kill `cat *.pid`'
-
-# The maximum socket receive buffer size is important for this test, which
-# tests behavior when the receive buffer overflows.
-if test -e /proc/sys/net/core/rmem_max; then
-    # Linux
-    rmem_max=`cat /proc/sys/net/core/rmem_max`
-elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
-    : # FreeBSD, NetBSD
-else
-    # Don't know how to get maximum socket receive buffer on this OS
-    AT_SKIP_IF([:])
-fi
-
-# Calculate the number of iterations we need to queue.  Each of the
-# iterations we execute, by itself, yields a monitor update of about
-# 25 kB, so fill up that much space plus a few for luck.
-n_iterations=`expr $rmem_max / 25000 + 5`
-echo rmem_max=$rmem_max n_iterations=$n_iterations
-
-# If there's too much queuing skip the test to avoid timing out.
-AT_SKIP_IF([test $rmem_max -gt 1048576])
-
-# Calculate the exact number of monitor updates expected for $n_iterations,
-# assuming no updates are combined.  The "extra" update is for the initial
-# contents of the database.
-n_updates=`expr $n_iterations \* 3 + 1`
-
-# Start an ovsdb-server with the vswitchd schema.
-OVSDB_INIT([db])
-AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db],
-  [0], [ignore], [ignore])
-
-# Executes a set of transactions that add a bridge with 100 ports, and
-# then deletes that bridge.  This yields three monitor updates that
-# add up to about 25 kB in size.
+#AT_SETUP([ovsdb-server combines updates on backlogged connections])
+#on_exit 'kill `cat *.pid`'
 #
-# The update also increments a counter held in the database so that we can
-# verify that the overall effect of the transactions took effect (e.g.
-# monitor updates at the end weren't just dropped).  We add an arbitrary
-# string to the counter to make grepping for it more reliable.
-counter=0
-trigger_big_update () {
-    counter=`expr $counter + 1`
-    ovs-vsctl --no-wait -- set open_vswitch . system_version=xyzzy$counter
-    ovs-vsctl --no-wait -- add-br br0 $add
-    ovs-vsctl --no-wait -- del-br br0
-}
-add_ports () {
-    for j in `seq 1 100`; do
-        printf " -- add-port br0 p%d" $j
-    done
-}
-add=`add_ports`
-
-AT_CAPTURE_FILE([ovsdb-client.err])
-AT_CAPTURE_FILE([ovsdb-client-nonblock.err])
-
-
-# Start an ovsdb-client monitoring all changes to the database,
-# By default, it is non-blocking, and will get update message
-# for each ovsdb-server transaactions.
-AT_CHECK([ovsdb-client --detach --no-chdir --pidfile=nonblock.pid monitor ALL >ovsdb-client-nonblock.out 2>ovsdb-client-nonblock.err])
-
-# Start an ovsdb-client monitoring all changes to the database,
-# make it block to force the buffers to fill up, and then execute
-# enough iterations that ovsdb-server starts combining updates.
-AT_CHECK([ovsdb-client --detach --no-chdir --pidfile monitor ALL >ovsdb-client.out 2>ovsdb-client.err])
-AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/block])
-for i in `seq 1 $n_iterations`; do
-    echo "blocked update ($i of $n_iterations)"
-    trigger_big_update $i
-done
-AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/unblock])
-OVS_WAIT_UNTIL([grep "xyzzy$counter" ovsdb-client.out])
-OVS_WAIT_UNTIL([grep "xyzzy$counter" ovsdb-client-nonblock.out])
-OVS_APP_EXIT_AND_WAIT([ovsdb-client])
-AT_CHECK([kill `cat nonblock.pid`])
-
-# Count the number of updates in the ovsdb-client output, by counting
-# the number of changes to the Open_vSwitch table.  (All of our
-# transactions modify the Open_vSwitch table.)  It should be less than
-# $n_updates updates.
+## The maximum socket receive buffer size is important for this test, which
+## tests behavior when the receive buffer overflows.
+#if test -e /proc/sys/net/core/rmem_max; then
+#    # Linux
+#    rmem_max=`cat /proc/sys/net/core/rmem_max`
+#elif rmem_max=`sysctl -n net.inet.tcp.recvbuf_max 2>/dev/null`; then
+#    : # FreeBSD, NetBSD
+#else
+#    # Don't know how to get maximum socket receive buffer on this OS
+#    AT_SKIP_IF([:])
+#fi
 #
-# Check that the counter is what we expect.
-logged_updates=`grep -c '^Open_vSwitch' ovsdb-client.out`
-logged_nonblock_updates=`grep -c '^Open_vSwitch' ovsdb-client-nonblock.out`
-echo "logged_nonblock_updates=$logged_nonblock_updates (expected less or equal to $n_updates)"
-echo "logged_updates=$logged_updates (expected less than $logged_nonblock_updates)"
-AT_CHECK([test $logged_nonblock_updates -le $n_updates])
-AT_CHECK([test $logged_updates -lt $logged_nonblock_updates])
-AT_CHECK_UNQUOTED([ovs-vsctl get open_vswitch . system_version], [0],
-  [xyzzy$counter
-])
-OVS_APP_EXIT_AND_WAIT([ovsdb-server])
-AT_CLEANUP
+## Calculate the number of iterations we need to queue.  Each of the
+## iterations we execute, by itself, yields a monitor update of about
+## 25 kB, so fill up that much space plus a few for luck.
+#n_iterations=`expr $rmem_max / 25000 + 5`
+#echo rmem_max=$rmem_max n_iterations=$n_iterations
+#
+## If there's too much queuing skip the test to avoid timing out.
+#AT_SKIP_IF([test $rmem_max -gt 1048576])
+#
+## Calculate the exact number of monitor updates expected for $n_iterations,
+## assuming no updates are combined.  The "extra" update is for the initial
+## contents of the database.
+#n_updates=`expr $n_iterations \* 3 + 1`
+#
+## Start an ovsdb-server with the vswitchd schema.
+#OVSDB_INIT([db])
+#AT_CHECK([ovsdb-server --detach --no-chdir --pidfile --log-file --remote=punix:db.sock db],
+#  [0], [ignore], [ignore])
+#
+## Executes a set of transactions that add a bridge with 100 ports, and
+## then deletes that bridge.  This yields three monitor updates that
+## add up to about 25 kB in size.
+##
+## The update also increments a counter held in the database so that we can
+## verify that the overall effect of the transactions took effect (e.g.
+## monitor updates at the end weren't just dropped).  We add an arbitrary
+## string to the counter to make grepping for it more reliable.
+#counter=0
+#trigger_big_update () {
+#    counter=`expr $counter + 1`
+#    ovs-vsctl --no-wait -- set open_vswitch . system_version=xyzzy$counter
+#    ovs-vsctl --no-wait -- add-br br0 $add
+#    ovs-vsctl --no-wait -- del-br br0
+#}
+#add_ports () {
+#    for j in `seq 1 100`; do
+#        printf " -- add-port br0 p%d" $j
+#    done
+#}
+#add=`add_ports`
+#
+#AT_CAPTURE_FILE([ovsdb-client.err])
+#AT_CAPTURE_FILE([ovsdb-client-nonblock.err])
+#
+#
+## Start an ovsdb-client monitoring all changes to the database,
+## By default, it is non-blocking, and will get update message
+## for each ovsdb-server transaactions.
+#AT_CHECK([ovsdb-client --detach --no-chdir --pidfile=nonblock.pid monitor ALL >ovsdb-client-nonblock.out 2>ovsdb-client-nonblock.err])
+#
+## Start an ovsdb-client monitoring all changes to the database,
+## make it block to force the buffers to fill up, and then execute
+## enough iterations that ovsdb-server starts combining updates.
+#AT_CHECK([ovsdb-client --detach --no-chdir --pidfile monitor ALL >ovsdb-client.out 2>ovsdb-client.err])
+#AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/block])
+#for i in `seq 1 $n_iterations`; do
+#    echo "blocked update ($i of $n_iterations)"
+#    trigger_big_update $i
+#done
+#AT_CHECK([ovs-appctl -t ovsdb-client ovsdb-client/unblock])
+#OVS_WAIT_UNTIL([grep "xyzzy$counter" ovsdb-client.out])
+#OVS_WAIT_UNTIL([grep "xyzzy$counter" ovsdb-client-nonblock.out])
+#OVS_APP_EXIT_AND_WAIT([ovsdb-client])
+#AT_CHECK([kill `cat nonblock.pid`])
+#
+## Count the number of updates in the ovsdb-client output, by counting
+## the number of changes to the Open_vSwitch table.  (All of our
+## transactions modify the Open_vSwitch table.)  It should be less than
+## $n_updates updates.
+##
+## Check that the counter is what we expect.
+#logged_updates=`grep -c '^Open_vSwitch' ovsdb-client.out`
+#logged_nonblock_updates=`grep -c '^Open_vSwitch' ovsdb-client-nonblock.out`
+#echo "logged_nonblock_updates=$logged_nonblock_updates (expected less or equal to $n_updates)"
+#echo "logged_updates=$logged_updates (expected less than $logged_nonblock_updates)"
+#AT_CHECK([test $logged_nonblock_updates -le $n_updates])
+#AT_CHECK([test $logged_updates -lt $logged_nonblock_updates])
+#AT_CHECK_UNQUOTED([ovs-vsctl get open_vswitch . system_version], [0],
+#  [xyzzy$counter
+#])
+#OVS_APP_EXIT_AND_WAIT([ovsdb-server])
+#AT_CLEANUP
 
 AT_BANNER([OVSDB -- ovsdb-server transactions (SSL IPv4 sockets)])
 
-- 
2.20.1



More information about the dev mailing list