This bug has been migrated to another issue tracking site. It has been closed here and may no longer be being monitored.

If you would like to get updates for this issue, or to participate in it, you may do so at Red Hat Issue Tracker .
Bug 2311700 - Fully populated LB wrong member subnet id when not specified
Summary: Fully populated LB wrong member subnet id when not specified
Keywords:
Status: CLOSED MIGRATED
Alias: None
Product: Red Hat OpenStack
Classification: Red Hat
Component: python-ovn-octavia-provider
Version: 17.1 (Wallaby)
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: async
: 17.1
Assignee: Fernando Royo
QA Contact: Eran Kuris
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2024-09-11 16:02 UTC by Fernando Royo
Modified: 2025-01-10 10:33 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2025-01-10 10:32:21 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker   OSP-32816 0 None None None 2025-01-10 10:32:21 UTC
Red Hat Issue Tracker OSP-33415 0 None None None 2025-01-10 10:33:02 UTC

Description Fernando Royo 2024-09-11 16:02:23 UTC
When a fully populated LB is created, if the member is not created indicating the subnet_id to whom it belongs, the LB vip_network_id is inherit by error as member.subnet_id [1]

If the member subnet_id is indicated in the call or added after LB creation in a later step this issue is not happening.

[1] https://opendev.org/openstack/ovn-octavia-provider/blame/commit/0673f16fc68d80c364ed8907b26c061be9b8dec1/ovn_octavia_provider/driver.py#L118

How reproducible:


Steps to Reproduce:
1. Create a Fully populated LB including a member without specifying the member's subnet id
 e.g.

MY_TOKEN=$(openstack token issue | awk '/ id / {print $4}'); 
MY_OCTAVIA_PATH=$(openstack endpoint list | grep octavia | awk '/public/ {print $14}')

 curl -ks -H "x-auth-token: $MY_TOKEN" -H "Content-Type: application/json" -X POST $MY_OCTAVIA_PATH/v2.0/lbaas/loadbalancers -d'      
{                   
    "loadbalancer":{                                          
       "vip_network_id":"bf660215-faac-4c85-9abb-c9d23cb6fa16",
       "provider": "ovn",
       "name":"lb2",
       "admin_state_up":true,
       "listeners":[
          {                      
             "name": "listener2",
             "protocol":"TCP",
             "protocol_port":"80",
             "default_pool": {
                "name":"pool2",
                "protocol":"TCP",
                "lb_algorithm":"SOURCE_IP_PORT",
                "members":[{"name":"vm2","address":"192.168.200.238","protocol_port":"80"}]
             }
          }
       ]
    }
 }'


Actual results:
The member will inherit the lb.vip_network_id as member.subnet_id
OVN NB output:
_uuid               : 6bd6499d-00c1-432c-a6f7-10c499953678
external_ids        : {enabled=True, listener_2a533b18-2a26-4014-8138-057f9fb3b1ef="80:pool_2a9b0cd3-44d6-41b7-a2ef-b9dcbad02e83", lr_ref=neutron-49d8649f-e77a-4384-9047-d4b0460fdce2, ls_refs="{\"neutron-a393089b-b487-4882-9f3b-cbdc021c8f5e\": 2}", "neutron:member_status"="{\"b42c62ec-eddc-45f5-9e3b-e0f83c12f915\": \"NO_MONITOR\"}", "neutron:vip"="192.168.100.253", "neutron:vip_port_id"="285e9c8c-7216-401c-8df5-1fb3c99a159e", pool_2a9b0cd3-44d6-41b7-a2ef-b9dcbad02e83="member_b42c62ec-eddc-45f5-9e3b-e0f83c12f915_192.168.100.238:80_a393089b-b487-4882-9f3b-cbdc021c8f5e"}
health_check        : []
ip_port_mappings    : {}
name                : "7cc45497-729d-452b-8c37-d6a5e3974e8d"
options             : {}
protocol            : tcp
selection_fields    : [ip_dst, ip_src, tp_dst, tp_src]
vips                : {"192.168.100.253:80"="192.168.100.238:80"}


Expected results:
_uuid               : 6bd6499d-00c1-432c-a6f7-10c499953678
external_ids        : {enabled=True, listener_2a533b18-2a26-4014-8138-057f9fb3b1ef="80:pool_2a9b0cd3-44d6-41b7-a2ef-b9dcbad02e83", lr_ref=neutron-49d8649f-e77a-4384-9047-d4b0460fdce2, ls_refs="{\"neutron-a393089b-b487-4882-9f3b-cbdc021c8f5e\": 2}", "neutron:member_status"="{\"b42c62ec-eddc-45f5-9e3b-e0f83c12f915\": \"NO_MONITOR\"}", "neutron:vip"="192.168.100.253", "neutron:vip_port_id"="285e9c8c-7216-401c-8df5-1fb3c99a159e", pool_2a9b0cd3-44d6-41b7-a2ef-b9dcbad02e83="member_b42c62ec-eddc-45f5-9e3b-e0f83c12f915_192.168.100.238:80_0d89748e-1ed3-4fa3-a81c-f600db974e08"}
health_check        : []
ip_port_mappings    : {}
name                : "7cc45497-729d-452b-8c37-d6a5e3974e8d"
options             : {}
protocol            : tcp
selection_fields    : [ip_dst, ip_src, tp_dst, tp_src]
vips                : {"192.168.100.253:80"="192.168.100.238:80"}

This could trigger issues on operations over the member when the subnet_id is extracted from external_ids to compare to other or the future ovn-db-sync.


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