A port that is disabled and bound is still ACTIVE with ML2/OVN
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
Rodolfo Alonso |
Bug Description
Issue originally reported to the Octavia project: https:/
During the failover of a loadbalancer, Octavia disables a port and waits for its status to be DOWN, but it never happens, the port is still ACTIVE (it impacts the duration of the failover in Octavia, but also the availability of the loadbalancer).
When a bound port is disabled, its status is expected to be switched to DOWN.
But with ML2/OVN, the port remains ACTIVE.
$ openstack server create --image cirros-
[..]
| id | 7e392799-
[..]
$ openstack port list --device-id 7e392799-
+------
| ID | Name | MAC Address | Fixed IP Addresses | Status |
+------
| 208c473c-
| | | | ip_address=
+------
$ openstack port show -c admin_state_up -c status 208c473c-
+------
| Field | Value |
+------
| admin_state_up | UP |
| status | ACTIVE |
+------
# Disabling the port
$ openstack port set --disable 208c473c-
$ openstack port show -c admin_state_up -c status 208c473c-
+------
| Field | Value |
+------
| admin_state_up | DOWN |
| status | ACTIVE |
+------
Folks on #openstack-neutron confirmed that with ML2/OVS, the status is DOWN when the port is disabled.
tags: | added: ovn |
Changed in neutron: | |
status: | New → Confirmed |
Changed in neutron: | |
importance: | Undecided → Medium |
I read a little the code and checked the logs, and to tell the truth lost in the details :-) up=False I am not sure if setting status=DOWN is a good decision.
If I understand well (of course I can't represent >10 years of API evolution and the ideas behind it) the status field of the port could represent that the backend wiring was successful.
If the admin sets admin_state_
If we assume that OVS drivers behaviour is correct we have to make OVN driver behave the same way.
I would go and ask the drivers about it to be sure, but that's just my 2 cents.