@@ -381,7 +381,19 @@ check_logs () {
esac
done
+ # We most notably ignore 'Broken pipe' warnings. These often and
+ # intermittently appear in ovsdb-server.log, because *ctl commands
+ # (e.g. ovs-vsctl, ovn-nbctl) exit right after committing a change to the
+ # database. However, in reaction, some daemon may immediately update the
+ # database, and this later update may cause database sending update back to
+ # *ctl command if *ctl has not exited yet. If *ctl command exits before
+ # the database calls send, the send fails with 'Broken pipe'. Also removes
+ # all "connection reset" warning logs for similar reasons (either EPIPE or
+ # ECONNRESET can be returned on a send depending on whether the peer had
+ # unconsumed data when it closed the socket).
sed -n "$1
+/reset by peer/d
+/Broken pipe/d
/timeval.*Unreasonably long [[0-9]]*ms poll interval/d
/timeval.*faults: [[0-9]]* minor, [[0-9]]* major/d
/timeval.*disk: [[0-9]]* reads, [[0-9]]* writes/d
@@ -80,19 +80,7 @@ m4_define([OVN_CONTROLLER_VTEP_START],
# So many exits... Yeah, we started a lot daemons~
#
m4_define([OVN_CONTROLLER_VTEP_STOP],
- [# removes all 'Broken pipe' warning logs from ovsdb-server.log. this is in
- # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
- # to database. however, in reaction, some daemon (e.g. ovn-controller-vtep)
- # may immediately update the database. this later update may cause database
- # sending update back to *ctl command if *ctl has not proceeded to exit yet.
- # and if *ctl command exits before database calling send, the send from
- # database will fail with 'Broken pipe' error. Also removes all "connection
- # reset" warning logs by a similar rationale (either EPIPE or ECONNRESET can
- # be returned on a send depending on whether the peer had unconsumed data when
- # it closed the socket).
- AT_CHECK([check_logs "$1
-/reset by peer/d
-/Broken pipe/d"])
+ [AT_CHECK([check_logs "$1"])
OVS_APP_EXIT_AND_WAIT([ovs-vtep])
OVS_APP_EXIT_AND_WAIT([ovn-northd])
OVS_APP_EXIT_AND_WAIT([ovn-controller-vtep])
@@ -18,19 +18,7 @@ m4_define([OVN_NBCTL_TEST_START],
# OVN_NBCTL_TEST_STOP
m4_define([OVN_NBCTL_TEST_STOP],
- [# removes all 'Broken pipe' warning logs from ovsdb-server.log. this is in
- # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
- # to database. however, in reaction, some daemon (e.g. ovn-controller-vtep)
- # may immediately update the database. this later update may cause database
- # sending update back to *ctl command if *ctl has not proceeded to exit yet.
- # and if *ctl command exits before database calling send, the send from
- # database will fail with 'Broken pipe' error. Also removes all "connection
- # reset" warning logs by a similar rationale (either EPIPE or ECONNRESET can
- # be returned on a send depending on whether the peer had unconsumed data when
- # it closed the socket).
- AT_CHECK([check_logs "$1
-/reset by peer/d
-/Broken pipe/d"])
+ [AT_CHECK([check_logs "$1"])
OVS_APP_EXIT_AND_WAIT([ovsdb-server])])
@@ -27,19 +27,7 @@ m4_define([OVN_SBCTL_TEST_START],
# OVN_SBCTL_TEST_STOP
m4_define([OVN_SBCTL_TEST_STOP],
- [# removes all 'Broken pipe' warning logs from ovsdb-server.log. this is in
- # that *ctl command (e.g. ovn-nbctl) exits right after committing the change
- # to database. however, in reaction, some daemon (e.g. ovn-controller-vtep)
- # may immediately update the database. this later update may cause database
- # sending update back to *ctl command if *ctl has not proceeded to exit yet.
- # and if *ctl command exits before database calling send, the send from
- # database will fail with 'Broken pipe' error. Also removes all "connection
- # reset" warning logs by a similar rationale (either EPIPE or ECONNRESET can
- # be returned on a send depending on whether the peer had unconsumed data when
- # it closed the socket).
- AT_CHECK([check_logs "$1
-/reset by peer/d
-/Broken pipe/d"])
+ [AT_CHECK([check_logs "$1"])
OVS_APP_EXIT_AND_WAIT([ovn-northd])
OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnnb_db.ctl], [$OVS_RUNDIR/ovnnb_db.pid])
OVS_APP_EXIT_AND_WAIT_BY_TARGET([$OVS_RUNDIR/ovnsb_db.ctl], [$OVS_RUNDIR/ovnsb_db.pid])])
Until now, the ovn-controller-vtep, ovn-nbctl, and ovn-sbctl tests have ignored "Broken pipe" and "Connection reset" messages. The same rationale that applies to them also applies to ovs-vsctl and other utilities. It seems easier to just always ignore them. Signed-off-by: Ben Pfaff <blp@ovn.org> --- tests/ofproto-macros.at | 12 ++++++++++++ tests/ovn-controller-vtep.at | 14 +------------- tests/ovn-nbctl.at | 14 +------------- tests/ovn-sbctl.at | 14 +------------- 4 files changed, 15 insertions(+), 39 deletions(-)