Bug 2216881 - 'ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Port with name=tapXXX' occurres some times
Summary: 'ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Port with name=ta...
Keywords:
Status: ON_DEV
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: openstack-neutron
Version: 16.2 (Train)
Hardware: Unspecified
OS: Unspecified
high
medium
Target Milestone: ---
: ---
Assignee: Slawek Kaplonski
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2023-06-23 02:58 UTC by nkawamot
Modified: 2023-07-05 23:45 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed:
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker OSP-26004 0 None None None 2023-06-23 02:59:24 UTC

Description nkawamot 2023-06-23 02:58:53 UTC
Description of problem:
One of our customers noticed the below messages are output in openvswitch-agent.log on compute node after an instance is stopped/live-migrated.

~~~
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command [req-bcb65204-28b3-46f8-85cf-af9ab5cc6e70 - - - - -] Error executing command: ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Port with name=tapXXX
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command Traceback (most recent call last):
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/command.py", line 39, in execute
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command     self.run_idl(None)
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/command.py", line 215, in run_idl
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command     record = self.api.lookup(self.table, self.record)
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 172, in lookup
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command     return self._lookup(table, record)
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/__init__.py", line 215, in _lookup
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command     row = idlutils.row_by_value(self, rl.table, rl.column, record)
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.6/site-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 130, in row_by_value
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command     raise RowNotFound(table=table, col=column, match=match)
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command ovsdbapp.backend.ovs_idl.idlutils.RowNotFound: Cannot find Port with name=tapXXX
2023-05-23 02:36:48.227 7553 ERROR ovsdbapp.backend.ovs_idl.command
~~~

The error has been output 3 times at least within the last 2 months.


Version-Release number of selected component (if applicable):
- RHOSP 16.2.0
- RHEL 8.4
- ML2/OVS + noop firewall driver
- Packages related to neutron in neutron_ovs_agent container:
  - openstack-neutron-common-15.3.5-2.20210608154813.el8ost.3.noarch
  - openstack-neutron-15.3.5-2.20210608154813.el8ost.3.noarch
  - python3-neutronclient-6.14.1-2.20210528065959.a09e824.el8ost.1.noarch
  - openstack-neutron-openvswitch-15.3.5-2.20210608154813.el8ost.3.noarch
  - python3-neutron-lib-1.29.1-2.20210528014406.4ef4b71.el8ost.1.noarch
  - python3-neutron-15.3.5-2.20210608154813.el8ost.3.noarch
  - openstack-neutron-ml2-15.3.5-2.20210608154813.el8ost.3.noarch
  - python3-neutron-dynamic-routing-15.0.1-2.20210527193223.56de1c4.el8ost.1.noarch


How reproducible:
It seems this error occurs randomly.

Steps to Reproduce:
1. 
2.
3.

Actual results:
The ERROR messages doesn't be output

Expected results:
The ERROR messages are output some times

Additional info:

Comment 1 nkawamot 2023-06-23 03:03:33 UTC
'Actual results' and 'Expected results' is the opposite.
The below is the correct one.

~~~
Actual results:
The ERROR messages are output sometimes

Expected results:
The ERROR messages don't be output
~~~

Comment 3 nkawamot 2023-06-23 03:55:35 UTC
It seems the ERROR message comes from here:

https://github.com/openstack/ovsdbapp/blob/stable/train/ovsdbapp/backend/ovs_idl/idlutils.py#L76-L84
~~~
def row_by_value(idl_, table, column, match, default=_NO_DEFAULT):
    """Lookup an IDL row in a table by column/value"""
    tab = idl_.tables[table]
    for r in tab.rows.values():
        if getattr(r, column) == match:
            return r
    if default is not _NO_DEFAULT:
        return default
    raise RowNotFound(table=table, col=column, match=match) <=========================== (*)
~~~


Note You need to log in before you can comment on or make changes to this bug.