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 <b...@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(-) diff --git a/tests/ofproto-macros.at b/tests/ofproto-macros.at index 17f85e703ccf..dd5763e87f49 100644 --- a/tests/ofproto-macros.at +++ b/tests/ofproto-macros.at @@ -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 diff --git a/tests/ovn-controller-vtep.at b/tests/ovn-controller-vtep.at index 9b9e42115678..f61c3efad592 100644 --- a/tests/ovn-controller-vtep.at +++ b/tests/ovn-controller-vtep.at @@ -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]) diff --git a/tests/ovn-nbctl.at b/tests/ovn-nbctl.at index 354b8df96d01..5346a123d3c4 100644 --- a/tests/ovn-nbctl.at +++ b/tests/ovn-nbctl.at @@ -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])]) diff --git a/tests/ovn-sbctl.at b/tests/ovn-sbctl.at index 9374b5fef214..ee2face769f4 100644 --- a/tests/ovn-sbctl.at +++ b/tests/ovn-sbctl.at @@ -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])]) -- 2.10.2 _______________________________________________ dev mailing list d...@openvswitch.org https://mail.openvswitch.org/mailman/listinfo/ovs-dev