Merge "Don't raise if polling manager is running when stopped"
This commit is contained in:
commit
b600129553
@ -15,11 +15,15 @@
|
||||
import contextlib
|
||||
|
||||
import eventlet
|
||||
from oslo_log import log as logging
|
||||
|
||||
from neutron.agent.common import base_polling
|
||||
from neutron.agent.linux import async_process
|
||||
from neutron.agent.linux import ovsdb_monitor
|
||||
from neutron.plugins.ml2.drivers.openvswitch.agent.common import constants
|
||||
|
||||
LOG = logging.getLogger(__name__)
|
||||
|
||||
|
||||
@contextlib.contextmanager
|
||||
def get_polling_manager(minimize_polling=False,
|
||||
@ -53,7 +57,10 @@ class InterfacePollingMinimizer(base_polling.BasePollingManager):
|
||||
self._monitor.start()
|
||||
|
||||
def stop(self):
|
||||
self._monitor.stop()
|
||||
try:
|
||||
self._monitor.stop()
|
||||
except async_process.AsyncProcessException:
|
||||
LOG.debug("InterfacePollingMinimizer was not running when stopped")
|
||||
|
||||
def _is_polling_required(self):
|
||||
# Maximize the chances of update detection having a chance to
|
||||
|
@ -33,7 +33,6 @@ from neutron.agent.common import ovs_lib
|
||||
from neutron.agent.common import polling
|
||||
from neutron.agent.common import utils
|
||||
from neutron.agent.l2.extensions import manager as ext_manager
|
||||
from neutron.agent.linux import async_process
|
||||
from neutron.agent.linux import ip_lib
|
||||
from neutron.agent.linux import polling as linux_polling
|
||||
from neutron.agent import rpc as agent_rpc
|
||||
@ -1812,12 +1811,7 @@ class OVSNeutronAgent(sg_rpc.SecurityGroupAgentRpcCallbackMixin,
|
||||
# no action and by InterfacePollingMinimizer as start/stop
|
||||
if isinstance(
|
||||
polling_manager, linux_polling.InterfacePollingMinimizer):
|
||||
# There's a possible race here, when ovsdb-server is
|
||||
# restarted ovsdb monitor will also be restarted
|
||||
try:
|
||||
polling_manager.stop()
|
||||
except async_process.AsyncProcessException:
|
||||
LOG.debug("OVSDB monitor was not running")
|
||||
polling_manager.stop()
|
||||
polling_manager.start()
|
||||
elif ovs_status == constants.OVS_DEAD:
|
||||
# Agent doesn't apply any operations when ovs is dead, to
|
||||
|
Loading…
Reference in New Issue
Block a user