Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 2290422

Summary: Bumping a revision number sometimes fails
Product: Red Hat OpenStack Reporter: Jakub Libosvar <jlibosva>
Component: openstack-neutronAssignee: Jakub Libosvar <jlibosva>
Status: CLOSED ERRATA QA Contact: Renjing Xiao <rxiao>
Severity: low Docs Contact:
Priority: medium    
Version: 17.1 (Wallaby)CC: chrisw, fyanac, mariel, mtomaska, scohen
Target Milestone: z4Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: openstack-neutron-18.6.1-17.1.20240822200817.85ff760.el9ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2024-11-21 09:41:06 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jakub Libosvar 2024-06-04 18:03:23 UTC
Description of problem:
Sometimes bumping a revision number fails, in this specific scenario OVN port went down and it triggered Neutron event, that attempted to update the revision number.

Version-Release number of selected component (if applicable):
17.1.3

How reproducible:
Sporadic

Steps to Reproduce:
1. Maybe reproduces by spawning and deleting instances in a bulk. In this test 75 instances were spawned at once.
2.
3.

Actual results:


Expected results:


Additional info:
2024-06-04 17:18:03.563 44 INFO neutron.plugins.ml2.drivers.ovn.mech_driver.mech_driver [req-939ad74c-8400-412f-b537-5e0250c001de - - - - -] OVN reports status down for port: 6d26299c-dab5-4b8d-bba4-37665f4dfcdd
2024-06-04 17:18:03.858 44 INFO neutron.notifiers.nova [-] Nova event matching ['req-6b15230f-3d03-4e94-bcbd-b87c3dd526fc'] response: {'server_uuid': '0043ea52-85ca-40bf-9242-1507159547a9', 'name': 'network-vif-unplugged', 'status': 'completed', 'tag': '6d26299c-dab5-4b8d-bba4-37665
f4dfcdd', 'code': 200}
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers [req-939ad74c-8400-412f-b537-5e0250c001de - - - - -] Mechanism driver 'ovn' failed in update_port_postcommit: oslo_db.exception.DBReferenceError: (pymysql.err.IntegrityError) (1452, 'Cannot add or update a child row: a fo
reign key constraint fails (`ovs_neutron`.`ovn_revision_numbers`, CONSTRAINT `ovn_revision_numbers_ibfk_1` FOREIGN KEY (`standard_attr_id`) REFERENCES `standardattributes` (`id`) ON DELETE SET NULL)')
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.dialect.do_execute(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     cursor.execute(statement, parameters)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/cursors.py", line 163, in execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     result = self._query(query)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/cursors.py", line 321, in _query
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     conn.query(q)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 505, in query
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 724, in _read_query_result
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     result.read()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 1069, in read
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     first_packet = self.connection._read_packet()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 676, in _read_packet
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     packet.raise_for_error()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/protocol.py", line 223, in raise_for_error
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     err.raise_mysql_exception(self._data)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/err.py", line 107, in raise_mysql_exception
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise errorclass(errno, errval)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers pymysql.err.IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`ovs_neutron`.`ovn_revision_numbers`, CONSTRAINT `ovn_revision_numbers_ibfk_1` FOREIGN KEY (`standard_attr_id`) REFEREN
CES `standardattributes` (`id`) ON DELETE SET NULL)')
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers The above exception was the direct cause of the following exception:
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers Traceback (most recent call last):
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron/plugins/ml2/managers.py", line 493, in _call_on_drivers
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     getattr(driver.obj, method_name)(context)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py", line 869, in update_port_postcommit
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._ovn_update_port(context._plugin_context, port, original_port,
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/mech_driver.py", line 754, in _ovn_update_port
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._ovn_client.update_port(plugin_context, port,
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 833, in update_port
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     db_rev.bump_revision(context, port, ovn_const.TYPE_PORTS)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron_lib/db/api.py", line 217, in wrapped
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return method(*args, **kwargs)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron_lib/db/api.py", line 139, in wrapped
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     setattr(e, '_RETRY_EXCEEDED', True)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.force_reraise()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise self.value
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron_lib/db/api.py", line 135, in wrapped
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return f(*args, **kwargs)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_db/api.py", line 154, in wrapper
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     ectxt.value = e.inner_exc
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.force_reraise()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise self.value
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_db/api.py", line 142, in wrapper
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return f(*args, **kwargs)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron_lib/db/api.py", line 183, in wrapped
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     LOG.debug("Retry wrapper got retriable exception: %s", e)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.force_reraise()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise self.value
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron_lib/db/api.py", line 179, in wrapped
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return f(*dup_args, **dup_kwargs)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/neutron/db/ovn_revision_numbers_db.py", line 190, in bump_revision
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     context.session.merge(row)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", line 2160, in merge
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._autoflush()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", line 1622, in _autoflush
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.flush()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", line 2540, in flush
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._flush(objects)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", line 2682, in _flush
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     transaction.rollback(_capture_exception=True)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/util/langhelpers.py", line 68, in __exit__
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     compat.raise_(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise exception
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/session.py", line 2642, in _flush
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     flush_context.execute()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 422, in execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     rec.execute(self)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/unitofwork.py", line 586, in execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     persistence.save_obj(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 230, in save_obj
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     _emit_update_statements(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/orm/persistence.py", line 994, in _emit_update_statements
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     c = cached_connections[connection].execute(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1011, in execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return meth(self, multiparams, params)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/sql/elements.py", line 298, in _execute_on_connection
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     return connection._execute_clauseelement(self, multiparams, params)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1124, in _execute_clauseelement
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     ret = self._execute_context(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1316, in _execute_context
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._handle_dbapi_exception(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1508, in _handle_dbapi_exception
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     util.raise_(newraise, with_traceback=exc_info[2], from_=e)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/util/compat.py", line 182, in raise_
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise exception
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/base.py", line 1276, in _execute_context
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self.dialect.do_execute(
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib64/python3.9/site-packages/sqlalchemy/engine/default.py", line 608, in do_execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     cursor.execute(statement, parameters)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/cursors.py", line 163, in execute
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     result = self._query(query)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/cursors.py", line 321, in _query
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     conn.query(q)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 505, in query
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     self._affected_rows = self._read_query_result(unbuffered=unbuffered)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 724, in _read_query_result
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     result.read()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 1069, in read
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     first_packet = self.connection._read_packet()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/connections.py", line 676, in _read_packet
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     packet.raise_for_error()
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/protocol.py", line 223, in raise_for_error
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     err.raise_mysql_exception(self._data)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers   File "/usr/lib/python3.9/site-packages/pymysql/err.py", line 107, in raise_mysql_exception
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers     raise errorclass(errno, errval)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers oslo_db.exception.DBReferenceError: (pymysql.err.IntegrityError) (1452, 'Cannot add or update a child row: a foreign key constraint fails (`ovs_neutron`.`ovn_revision_numbers`, CONSTRAINT `ovn_revision_numbers_ibfk_1` FOREIGN KEY (`standard_attr_id`) REFERENCES `standardattributes` (`id`) ON DELETE SET NULL)')
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers [SQL: UPDATE ovn_revision_numbers SET standard_attr_id=%(standard_attr_id)s, revision_number=%(revision_number)s, updated_at=now() WHERE ovn_revision_numbers.resource_uuid = %(ovn_revision_numbers_resource_uuid)s AND ovn_revision_numbers.resource_type = %(ovn_revision_numbers_resource_type)s]
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers [parameters: {'standard_attr_id': 298849487, 'revision_number': 5, 'ovn_revision_numbers_resource_uuid': '6d26299c-dab5-4b8d-bba4-37665f4dfcdd', 'ovn_revision_numbers_resource_type': 'ports'}]
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers (Background on this error at: http://sqlalche.me/e/13/gkpj)
2024-06-04 17:18:04.218 44 ERROR neutron.plugins.ml2.managers

Comment 1 Jakub Libosvar 2024-06-07 20:30:36 UTC
I was able to reconstruct what happened. There seems to be a race when deleting a vm - between ovn-controller setting the port down and actually Neutron deleting the port from the database. The status change emits an event that ends up calling self.mechanism_manager.update_port_postcommit(mech_context) when the state in Neutron is changed. In the meantime, the port is deleted via API:

On one worker:
2024-06-07 19:25:23.816 32 INFO neutron.plugins.ml2.drivers.ovn.mech_driver.mech_driver [req-a3dc52ed-5e65-46f3-b2cf-844f270d438a - - - - -] OVN reports status down for port: a7864738-70aa-4faf-8545-d44c3a6cb754
2024-06-07 19:25:24.114 32 INFO neutron.notifiers.nova [-] Nova event matching ['req-82bf9278-2eb8-4e20-8141-c444b74c3bec'] response: {'server_uuid': '60a4e796-1521-4655-9151-eca7946cb961', 'name': 'network-vif-unplugged', 'status': 'completed', 'tag': 'a7864738-70aa-4faf-8545-d44c3a6cb754', 'code': 200}
[parameters: {'standard_attr_id': 299214875, 'revision_number': 5, 'ovn_revision_numbers_resource_uuid': 'a7864738-70aa-4faf-8545-d44c3a6cb754', 'ovn_revision_numbers_resource_type': 'ports'}]
2024-06-07 19:25:24.594 32 ERROR neutron.plugins.ml2.managers [parameters: {'standard_attr_id': 299214875, 'revision_number': 5, 'ovn_revision_numbers_resource_uuid': 'a7864738-70aa-4faf-8545-d44c3a6cb754', 'ovn_revision_numbers_resource_type': 'ports'}]
2024-06-07 19:25:26.155 32 INFO neutron.notifiers.nova [-] Nova event matching ['req-596a86b0-c128-4b6c-9d54-a7042976198e'] response: {'server_uuid': '60a4e796-1521-4655-9151-eca7946cb961', 'name': 'network-vif-plugged', 'status': 'completed', 'tag': 'a7864738-70aa-4faf-8545-d44c3a6cb754', 'code': 200}

On other worker:
2024-06-07 19:25:24.660 42 INFO neutron.wsgi [req-8f748264-e70f-4ee9-9406-e286e96e09e4 a1363a49a3a36445d4e48cdc77005de334dec76bbaa9f04e52b8041adf618a88 38b9b32101814a979d5dbd5979904f9e - 62cf1b5ec006489db99e2b0ebfb55f57 62cf1b5ec006489db99e2b0ebfb55f57] 172.16.21.202,172.16.21.72 "DELETE /v2.0/ports/a7864738-70aa-4faf-8545-d44c3a6cb754 HTTP/1.1" status: 204  len: 149 time: 0.4937482

The DB transactions:
record 14405:
 term: 98
 index: 769624
 eid: 5935
 2024-06-07 19:25:23.713 "ovn-controller"
  table Port_Binding row eacdb251 (eacdb251) diff:
    up=false
    chassis=[]

--
record 14421:
 term: 98
 index: 769632
 eid: d30a
 2024-06-07 19:25:33.668 "ovn-northd"
  table Port_Binding row eacdb251 (eacdb251) diff:
    delete row

Comment 2 Jakub Libosvar 2024-06-07 20:31:48 UTC
There is probably no impact on functionality given that one worker attempts to bump the revision number of a port that no longer exists and was successfully deleted.

Comment 4 Jakub Libosvar 2024-06-07 20:43:47 UTC
2024-06-07T16:14:58.974Z|117676|binding|INFO|Claiming lport a7864738-70aa-4faf-8545-d44c3a6cb754 for this chassis.
2024-06-07T16:14:58.974Z|117677|binding|INFO|a7864738-70aa-4faf-8545-d44c3a6cb754: Claiming fa:16:3e:ae:1c:55 10.0.205.86
2024-06-07T16:14:59.415Z|117678|binding|INFO|Setting lport a7864738-70aa-4faf-8545-d44c3a6cb754 ovn-installed in OVS
2024-06-07T16:14:59.415Z|117679|binding|INFO|Setting lport a7864738-70aa-4faf-8545-d44c3a6cb754 up in Southbound
2024-06-07T19:25:23.635Z|120239|binding|INFO|Releasing lport a7864738-70aa-4faf-8545-d44c3a6cb754 from this chassis (sb_readonly=0)
2024-06-07T19:25:23.636Z|120240|binding|INFO|Setting lport a7864738-70aa-4faf-8545-d44c3a6cb754 down in Southbound

Comment 5 Jakub Libosvar 2024-06-10 18:26:58 UTC
When the port was removed from the NB for the record:
record 73733:
 term: 26
 index: 990964
 eid: 90e3
 2024-06-07 19:25:24.621
  table Port_Group row "pg_4f715a9d_470c_4cc9_96e1_8a9ddf220c1f" (65ff5554) diff:
    ports=[399aa44a-aa12-4b1e-a872-b5fef2bf7ce1]
  table Port_Group row "neutron_pg_drop" (9a302e63) diff:
    ports=[399aa44a-aa12-4b1e-a872-b5fef2bf7ce1]
  table Logical_Switch row "neutron-b71d614c-b0b0-4f2d-b141-e78129212b98" (f774713e) diff:
    ports=[399aa44a-aa12-4b1e-a872-b5fef2bf7ce1]
  table Logical_Switch_Port row "a7864738-70aa-4faf-8545-d44c3a6cb754" (399aa44a) diff:
    delete row

Comment 6 Jakub Libosvar 2024-06-12 20:39:28 UTC
I reproduced this locally on OSP 17.1 but I can't reproduce it in upstream master. Seems like it's been fixed upstream already.

Comment 7 Jakub Libosvar 2024-06-13 21:32:21 UTC
I'm raising severity to high as this leaves an OVN revision number in the database behind. So basically the code ensures when bumping the ovn revision number that it exists. In our case it's already gone and the bump from the OVN even recreates it back.

This doesn't happen in master because this patch fixes it: https://opendev.org/openstack/neutron/commit/81004125c4592f2378d8434e41ec2db41a42886b - although it's goal was different. Even after the patch we still see the traceback but it no longer recreates back the entry in the SQL database.

Comment 8 Jakub Libosvar 2024-06-13 21:37:27 UTC
I was wrong with the stale entry, the transaction is rolled back after it fails.

Comment 20 errata-xmlrpc 2024-11-21 09:41:06 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (RHOSP 17.1.4 bug fix and enhancement advisory), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2024:9974