Router create fails when router with same name already exists

Bug #1917508 reported by Carlos Goncalves
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
New
High
Terry Wilson

Bug Description

Test tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_preserve_preexisting_port failed with what appears to be an issue in the OVN ML2 driver. According to Terry, "it looks like the create_lrouter call in impl_idl_ovn.py passes may_exist, but the one in ovn_client.py which you are hitting does not."

https://64e4c686e8a5385bf7e9-3a9e3dcf5065ad1abf1d1a27741d8ba4.ssl.cf5.rackcdn.com/775444/9/check/tripleo-ci-centos-8-containers-multinode/e812d2f/logs/undercloud/var/log/tempest/tempest_run.log

https://zuul.opendev.org/t/openstack/build/e812d2fb618b45118fca269af335d0f4/log/logs/subnode-1/var/log/containers/neutron/server.log#9668-9736

2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource [req-c24e459e-3cd0-457f-8111-4d6bd5e07d05 3cb9d2fb8de645868d440abcd947ea0c c2be1e148cc3473e9f880590eb3ae771 - default default] create failed: No details.: RuntimeError: OVSDB Error: {"details":"Transaction causes multiple rows in \"Logical_Router_Port\" table to have identical values (lrp-ffeb33eb-75bf-4330-9d96-188c1529bf18) for index on column \"name\". First row, with UUID c4340403-af73-46c4-a27c-77969d0522fd, existed in the database before this transaction and was not modified by the transaction. Second row, with UUID 42b137d3-14ad-4ead-bcdc-b2da5684511b, was inserted by this transaction.","error":"constraint violation"}
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource Traceback (most recent call last):
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/api/v2/resource.py", line 98, in resource
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource result = method(request=request, **args)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/api/v2/base.py", line 437, in create
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource return self._create(request, body, **kwargs)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron_lib/db/api.py", line 139, in wrapped
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource setattr(e, '_RETRY_EXCEEDED', True)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.force_reraise()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise self.value
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron_lib/db/api.py", line 135, in wrapped
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_db/api.py", line 154, in wrapper
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource ectxt.value = e.inner_exc
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.force_reraise()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise self.value
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_db/api.py", line 142, in wrapper
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource return f(*args, **kwargs)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron_lib/db/api.py", line 183, in wrapped
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource LOG.debug("Retry wrapper got retriable exception: %s", e)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.force_reraise()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise self.value
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron_lib/db/api.py", line 179, in wrapped
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource return f(*dup_args, **dup_kwargs)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/api/v2/base.py", line 561, in _create
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource obj = do_create(body)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/api/v2/base.py", line 543, in do_create
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource request.context, reservation.reservation_id)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.force_reraise()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise self.value
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/api/v2/base.py", line 536, in do_create
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource return obj_creator(request.context, **kwargs)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/services/ovn_l3/plugin.py", line 178, in create_router
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource router['id'])
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 227, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.force_reraise()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/oslo_utils/excutils.py", line 200, in force_reraise
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise self.value
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/services/ovn_l3/plugin.py", line 172, in create_router
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self._ovn_client.create_router(context, router)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 1147, in create_router
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource router, networks, txn)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib64/python3.6/contextlib.py", line 88, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource next(self.gen)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py", line 204, in transaction
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource yield t
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib64/python3.6/contextlib.py", line 88, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource next(self.gen)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/ovsdbapp/api.py", line 110, in transaction
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource del self._nested_txns_map[cur_thread_id]
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/ovsdbapp/api.py", line 61, in __exit__
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource self.result = self.commit()
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 64, in commit
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise result.ex
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/connection.py", line 129, in run
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource txn.results.put(txn.do_commit())
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 120, in do_commit
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource raise RuntimeError(msg)
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource RuntimeError: OVSDB Error: {"details":"Transaction causes multiple rows in \"Logical_Router_Port\" table to have identical values (lrp-ffeb33eb-75bf-4330-9d96-188c1529bf18) for index on column \"name\". First row, with UUID c4340403-af73-46c4-a27c-77969d0522fd, existed in the database before this transaction and was not modified by the transaction. Second row, with UUID 42b137d3-14ad-4ead-bcdc-b2da5684511b, was inserted by this transaction.","error":"constraint violation"}
2021-03-02 15:52:21.648 29 ERROR neutron.api.v2.resource
2021-03-02 15:52:21.670 29 INFO neutron.wsgi [req-c24e459e-3cd0-457f-8111-4d6bd5e07d05 3cb9d2fb8de645868d440abcd947ea0c c2be1e148cc3473e9f880590eb3ae771 - default default] 192.168.24.3 "POST /v2.0/routers HTTP/1.1" status: 500 len: 363 time: 13.3926668

Tags: ovn
tags: added: ovn
Changed in neutron:
importance: Undecided → High
Changed in neutron:
assignee: nobody → Terry Wilson (otherwiseguy)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Change abandoned on neutron (master)

Change abandoned by "Terry Wilson <email address hidden>" on branch: master
Review: https://review.opendev.org/c/openstack/neutron/+/779534

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.