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

Bug 2175892

Summary: KeyError exception running _expose_provider_port
Product: Red Hat OpenStack Reporter: Eduardo Olivares <eolivare>
Component: ovn-bgp-agentAssignee: Luis Tomas Bolivar <ltomasbo>
Status: CLOSED ERRATA QA Contact: Eduardo Olivares <eolivare>
Severity: high Docs Contact:
Priority: medium    
Version: 17.1 (Wallaby)CC: dalvarez, lmartins, ltomasbo
Target Milestone: betaKeywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: ovn-bgp-agent-0.3.1-1.20230324161202.ddb740e.el9ost Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-16 01:14:17 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:

Comment 7 Eduardo Olivares 2023-04-13 10:55:59 UTC
Verified on RHOS-17.1-RHEL-9-20230404.n.1 / ovn-bgp-agent-0.3.1-1.20230324161202.ddb740e.el9ost

Verified running the tempest test test_create_router_set_gateway_with_fixed_ip (see comment#1).

The following error messages can be found in the ovn_bgp_agent logs when the router from this test is deleted:
2023-04-13T10:47:33.600230883+00:00 stdout F 2023-04-13 10:47:33.599 3243 DEBUG oslo_concurrency.lockutils [-] Lock "bgp" acquired by "ovn_bgp_agent.drivers.openstack.ovn_bgp_driver.OVNBGPDriver.withdraw_subnet" :: waited 0.000s inner /usr/lib/python3.9/site-packages/oslo_concurrency/lockutils.py:355ESC[00m         
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command [-] Error executing command (DbFindCommand): ValueError: Column type and condition operand do not match                                                                                                     
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command Traceback (most recent call last):
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/command.py", line 39, in execute                                                                                                          
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     self.run_idl(None)
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/command.py", line 314, in run_idl                                                                                                         
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     self.result = [
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/command.py", line 319, in <listcomp>                                                                                                      
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     for r in rows if idlutils.row_match(r, self.conditions)                                                                                                                                                 
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 412, in row_match                                                                                                      
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     return all(condition_match(row, cond) for cond in conditions)                                                                                                                                           
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 412, in <genexpr>                                                                                                      
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     return all(condition_match(row, cond) for cond in conditions)                                                                                                                                           
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command   File "/usr/lib/python3.9/site-packages/ovsdbapp/backend/ovs_idl/idlutils.py", line 359, in condition_match                                                                                                
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command     raise ValueError(
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command ValueError: Column type and condition operand do not match                                                                                                                                                  
2023-04-13T10:47:33.601988434+00:00 stdout F 2023-04-13 10:47:33.601 3243 ERROR ovsdbapp.backend.ovs_idl.command ESC[00m
2023-04-13T10:47:33.602361599+00:00 stdout F 2023-04-13 10:47:33.602 3243 DEBUG ovn_bgp_agent.drivers.openstack.ovn_bgp_driver [-] Router is being deleted, so it's datapath does not exists any more. Checking if port lrp-1a17bf2c-ecd1-4f98-8be1-9787207aafae belongs to chassis redirect and skip in that case. withdraw_s
ubnet /usr/lib/python3.9/site-packages/ovn_bgp_agent/drivers/openstack/ovn_bgp_driver.py:1080ESC[00m

This is not an issue: the agent captures the exception and manages it properly. As mentioned in comment#1, this is a weird case of a router connected to an external network not attached to any physical network.

Comment 16 errata-xmlrpc 2023-08-16 01:14:17 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 (Release of components for Red Hat OpenStack Platform 17.1 (Wallaby)), 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/RHEA-2023:4577