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

Bug 2244631

Summary: Manual sync misidentifies Octavia OVN Load Balancer health monitor port and deletes metadata port
Product: Red Hat OpenStack Reporter: Fernando Royo <froyo>
Component: python-ovn-octavia-providerAssignee: Fernando Royo <froyo>
Status: CLOSED ERRATA QA Contact: Omer Schwartz <oschwart>
Severity: high Docs Contact:
Priority: high    
Version: 17.1 (Wallaby)CC: egarciar, gbrinn, gthiemon, mariel, oschwart, pgrist, tweining
Target Milestone: z2Keywords: Triaged
Target Release: 17.1   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-ovn-octavia-provider-1.0.3-17.1.20231025110804.d779786.el9ost Doc Type: Bug Fix
Doc Text:
Before this update, performing a manual OVN DB sync while the OVN metadata and the OVN LB health monitor ports were present in the same environment caused the OVN DB sync to delete one of the ports. If the OVN metadata port was deleted, you lost communication with the VMs. With this update, a manual OVN DB sync does not delete one of the ports because the OVN-provider uses the `ovn-lb-hm:distributed` value for the `device_owner` parameter. OVN provider updates existing OVN LB Health Monitor ports to the `ovn-lb-hm:distributed` value.
Story Points: ---
Clone Of:
: 2245300 (view as bug list) Environment:
Last Closed: 2024-01-16 14:31:26 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:
Bug Depends On:    
Bug Blocks: 2245300    

Description Fernando Royo 2023-10-17 12:46:55 UTC
Description of problem:
Doing manual ovn sync:
neutron-ovn-db-sync-util --config-file=/etc/neutron/neutron.conf --config-file=/etc/neutron/plugins/ml2/ml2_conf.ini --ovn-neutron_sync_mode repair

Misidentifies Octavia OVN Load Balancer Health Monitor Port and Deletes Metadata Port:

47:2023-09-28 13:22:29.565 2053 WARNING neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovn_db_sync [req-b037dd97-5936-4981-b0be-d4c88c6e806d - - - - -] Unnecessary DHCP port 77cc790a-1712-4fc2-b184-918842588a06 for network dd8dbcd7-0f6f-424f-aa2e-256630af44fd found in Neutron
48:2023-09-28 13:22:29.565 2053 WARNING neutron.plugins.ml2.drivers.ovn.mech_driver.ovsdb.ovn_db_sync [req-b037dd97-5936-4981-b0be-d4c88c6e806d - - - - -] Deleting unnecessary DHCP port 77cc790a-1712-4fc2-b184-918842588a06 for network dd8dbcd7-0f6f-424f-aa2e-256630af44fd

OVN LB health monitor port got .3 IP, and metadata uses it now as its port:

ip netns exec ovnmeta-dd8dbcd7-0f6f-424f-aa2e-256630af44fd ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: tapdd8dbcd7-01@if2868: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether fa:16:3e:c9:12:45 brd ff:ff:ff:ff:ff:ff link-netnsid 0
    inet 169.254.169.254/32 brd 169.254.169.254 scope global tapdd8dbcd7-01
       valid_lft forever preferred_lft forever
    inet 192.168.100.3/24 brd 192.168.100.255 scope global tapdd8dbcd7-01
       valid_lft forever preferred_lft forever

openstack port show ovn-lb-hm-b7383d04-9220-48cd-bac9-3e2c53ad2d5f
+-------------------------+------------------------------------------------------------------------------+
| Field | Value |
+-------------------------+------------------------------------------------------------------------------+
| admin_state_up | UP |
| allowed_address_pairs | |
| binding_host_id | |
| binding_profile | |
| binding_vif_details | |
| binding_vif_type | unbound |
| binding_vnic_type | normal |
| created_at | 2023-09-14T12:30:30Z |
| data_plane_status | None |
| description | |
| device_id | |
| device_owner | network:distributed |
| device_profile | None |
| dns_assignment | None |
| dns_domain | None |
| dns_name | None |
| extra_dhcp_opts | |
| fixed_ips | ip_address='192.168.100.3', subnet_id='b7383d04-9220-48cd-bac9-3e2c53ad2d5f' |
| id | 2831bc8f-60e4-4a44-88e1-f3010cce3cbd |
| ip_allocation | None |
| mac_address | fa:16:3e:c9:12:45 |
| name | ovn-lb-hm-b7383d04-9220-48cd-bac9-3e2c53ad2d5f |
| network_id | dd8dbcd7-0f6f-424f-aa2e-256630af44fd |
| numa_affinity_policy | None |
| port_security_enabled | False |
| project_id | e4529e5a687e4128af2935fb33cfa7c2 |
| propagate_uplink_status | None |
| qos_network_policy_id | None |
| qos_policy_id | None |
| resource_request | None |
| revision_number | 1 |
| security_group_ids | |
| status | DOWN |
| tags | |
| trunk_details | None |
| updated_at | 2023-09-14T12:30:30Z |
+-------------------------+------------------------------------------------------------------------------+

Workaround - removed health monitor, readded manually ovnmeta port, restart metadata agents.

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


How reproducible:
Easily having a OVN LB HM port with device_owner=network:distributed and another ovn-metadata ports.

Steps to Reproduce:
1. Create a OVN LB Health monitor 
2. Run neutron-db-sync tool

Actual results:
OVN-metadata port will dissapear if its uuid is "bigger" than the OVN LB HM port uuid.

Expected results:
OVN metadata and OVN LB HM port are not deleted.

Comment 26 errata-xmlrpc 2024-01-16 14:31:26 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 (Red Hat OpenStack Platform 17.1.2 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:0209