From c704d0d9fab34b05e48afee7718c30c2d42d730c Mon Sep 17 00:00:00 2001 From: Bernard Cafarelli Date: Mon, 27 Aug 2018 14:37:15 +0200 Subject: [PATCH] ovsdb monitor: do not die on ovsdb-client stderr output That process may generate stderr output (ovs 2.10 with dpdk support will log about missing optional libraries for example), in which case the agent will loop forever respawning the ovsdb-client processes. AsyncProcess already handles processes exiting uncleanly, and logs stderr output with log_output=True (which is the case for OvsdbMonitor). As the monitors work on stdout output, disabling die_on_error is enough to make them work with this behaviour. Change-Id: I8f2e5b93b9c16f9b288046911b5aeb4938845233 Closes-Bug: #1788865 (cherry picked from commit f6d98a747b03e4da5109b2ee0e3c1bd7e88aee49) --- neutron/agent/linux/ovsdb_monitor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/neutron/agent/linux/ovsdb_monitor.py b/neutron/agent/linux/ovsdb_monitor.py index b066ebfc659..ecb6e886198 100644 --- a/neutron/agent/linux/ovsdb_monitor.py +++ b/neutron/agent/linux/ovsdb_monitor.py @@ -72,7 +72,7 @@ class OvsdbMonitor(async_process.AsyncProcess): super(OvsdbMonitor, self).__init__(cmd, run_as_root=run_as_root, respawn_interval=respawn_interval, log_output=True, - die_on_error=True) + die_on_error=False) self.new_events = {'added': [], 'removed': []} def get_events(self):