Execute neutron-ovn-db-sync-util report TypeError

Bug #2025202 reported by ZhouHeng
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Fix Released
High
ZhouHeng

Bug Description

A TypeError was thrown during a synchronization command(eutron-ovn-db-sync-util) execution. By checking the error call stack, it was found that it was an error during the creation of QoS. After analysis, there should be a port in the Neutron database, but not in the ovn-nb database. At this time, when executing the UpdateLSwitchQosOptionsCommand to create a logical port and update the QoS, it was found that the port_id is None. tracking variable port_id is obtained by executing AddLSwitchPortCommand. It should be that this command did not set the port_id correctly caused. Analyzing AddLSwitchPortCommand, it was found that if the port already exists, no result was set.
This seems a bit contradictory. It was determined earlier that the port does not exist, but later it does. I think this situation may occur when executing synchronization commands and calling the API that creates the port. This operation is not very reasonable.

But I think the AddLSwitchPortCommand command should return consistent results. This issue should be fixed.

ERROR Message:

2023-06-26 11:06:24.385 345 WARNING neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovn_db_sync [None req-01d7864c-e3a6-409a-a852-2f6ea869fdae - - - - -] Port found in Neutron but not in OVN DB, port_id=ae5a8d95-e59f-465a-833d-28b3d0fabb2d
2023-06-26 11:06:24.440 345 ERROR ovsdbapp.backend.ovs_idl.transaction [None req-01d7864c-e3a6-409a-a852-2f6ea869fdae - - - - -] Traceback (most recent call last):
  File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/connection.py", line 131, in run
    txn.results.put(txn.do_commit())
  File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 92, in do_commit
    command.run_idl(txn)
  File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py", line 216, in run_idl
    port = self.api.lookup('Logical_Switch_Port', port_id)
  File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 181, in lookup
    return self._lookup(table, record)
  File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 203, in _lookup
    uuid_ = uuid.UUID(record)
  File "/usr/lib64/python3.6/uuid.py", line 134, in __init__
    raise TypeError('one of the hex, bytes, bytes_le, fields, '
TypeError: one of the hex, bytes, bytes_le, fields, or int arguments must be given

2023-06-26 11:06:24.441 345 CRITICAL neutron_ovn_db_sync_util [None req-01d7864c-e3a6-409a-a852-2f6ea869fdae - - - - -] Unhandled error: TypeError: one of the hex, bytes, bytes_le, fields, or int arguments must be given
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util Traceback (most recent call last):
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/bin/neutron-ovn-db-sync-util", line 8, in <module>
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util sys.exit(main())
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/cmd/ovn/neutron_ovn_db_sync_util.py", line 231, in main
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util synchronizer.do_sync()
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py", line 104, in do_sync
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util self.sync_networks_ports_and_dhcp_opts(ctx)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py", line 999, in sync_networks_ports_and_dhcp_opts
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util for port_id, port in db_ports.items():
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_db_sync.py", line 120, in _create_port_in_ovn
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util self._ovn_client.create_port(ctx, port)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/ovn_client.py", line 427, in create_port
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util self._qos_driver.create_port(txn, port, port_cmd)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/usr/lib64/python3.6/contextlib.py", line 88, in __exit__
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util next(self.gen)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/impl_idl_ovn.py", line 262, in transaction
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util yield t
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/usr/lib64/python3.6/contextlib.py", line 88, in __exit__
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util next(self.gen)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/api.py", line 110, in transaction
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util del self._nested_txns_map[cur_thread_id]
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/api.py", line 61, in __exit__
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util self.result = self.commit()
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 64, in commit
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util raise result.ex
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/connection.py", line 131, in run
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util txn.results.put(txn.do_commit())
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/transaction.py", line 92, in do_commit
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util command.run_idl(txn)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/root/neutron/plugins/ml2/drivers/ovn/mech_driver/ovsdb/commands.py", line 216, in run_idl
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util port = self.api.lookup('Logical_Switch_Port', port_id)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 181, in lookup
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util return self._lookup(table, record)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/var/lib/kolla/venv/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 203, in _lookup
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util uuid_ = uuid.UUID(record)
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util File "/usr/lib64/python3.6/uuid.py", line 134, in __init__
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util raise TypeError('one of the hex, bytes, bytes_le, fields, '
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util TypeError: one of the hex, bytes, bytes_le, fields, or int arguments must be given
2023-06-26 11:06:24.441 345 ERROR neutron_ovn_db_sync_util

Tags: ovn
ZhouHeng (zhouhenglc)
Changed in neutron:
assignee: nobody → ZhouHeng (zhouhenglc)
Changed in neutron:
importance: Undecided → High
status: New → Triaged
tags: added: ovn
Revision history for this message
yatin (yatinkarel) wrote :
Changed in neutron:
status: Triaged → In Progress
ZhouHeng (zhouhenglc)
Changed in neutron:
status: In Progress → Fix Committed
Changed in neutron:
status: Fix Committed → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 20.4.0

This issue was fixed in the openstack/neutron 20.4.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 23.0.0.0b3

This issue was fixed in the openstack/neutron 23.0.0.0b3 development milestone.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 22.1.0

This issue was fixed in the openstack/neutron 22.1.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron 21.2.0

This issue was fixed in the openstack/neutron 21.2.0 release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron wallaby-eom

This issue was fixed in the openstack/neutron wallaby-eom release.

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/neutron xena-eom

This issue was fixed in the openstack/neutron xena-eom release.

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.