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])])
