Never raise an exception in notify()
notify() is called from python-ovs code which is not built to
recover from an exception in this user-overriden code. If there
is an exception (e.g. the DB server is down when we process
the hash ring), this exception can cause an unrecoverable error
in processing OVSDB messages, rendering the neutron worker useless.
Change-Id: I5f703d82175d71a222c76df37a82b5ccad890d14
(cherry picked from commit 67e616b238
)
This commit is contained in:
parent
2617f7b93c
commit
931f0af2e3
@ -720,6 +720,7 @@ class OvnIdlDistributedLock(BaseOvnIdl):
|
||||
self.driver.agent_chassis_table = 'Chassis_Private'
|
||||
|
||||
def notify(self, event, row, updates=None):
|
||||
try:
|
||||
self.handle_db_schema_changes(event, row)
|
||||
self.notify_handler.notify(event, row, updates, global_=True)
|
||||
try:
|
||||
@ -751,8 +752,11 @@ class OvnIdlDistributedLock(BaseOvnIdl):
|
||||
'handling event "%(event)s" for row %(row)s '
|
||||
'(table: %(table)s)',
|
||||
{'node': self._node_uuid, 'hostname': CONF.host,
|
||||
'event': event, 'row': row.uuid, 'table': row._table.name})
|
||||
'event': event, 'row': row.uuid,
|
||||
'table': row._table.name})
|
||||
self.notify_handler.notify(event, row, updates)
|
||||
except Exception as e:
|
||||
LOG.exception(e)
|
||||
|
||||
@abc.abstractmethod
|
||||
def post_connect(self):
|
||||
|
Loading…
Reference in New Issue
Block a user