VM fails to delete with trunk + subports

Bug #2037585 reported by Mohammed Naser
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
New
Undecided
Unassigned

Bug Description

When using Neutron, it will prevent you to delete a port if the subports are still attached:

https://review.opendev.org/c/openstack/neutron/+/885154

Because of this, if you delete a VM with subports attached, you will end up with a VM in ERROR state:

```
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] Traceback (most recent call last):
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 1768, in _delete_ports
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] neutron.delete_port(port)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 196, in wrapper
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] ret = obj(*args, **kwargs)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 833, in delete_port
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] return self.delete(self.port_path % (port))
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 196, in wrapper
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] ret = obj(*args, **kwargs)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 352, in delete
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] return self.retry_request("DELETE", action, body=body,
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 196, in wrapper
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] ret = obj(*args, **kwargs)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 333, in retry_request
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] return self.do_request(method, action, body=body,
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 196, in wrapper
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] ret = obj(*args, **kwargs)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 297, in do_request
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] self._handle_fault_response(status_code, replybody, resp)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/nova/network/neutron.py", line 196, in wrapper
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] ret = obj(*args, **kwargs)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 272, in _handle_fault_response
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] exception_handler_v20(status_code, error_body)
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] File "/var/lib/openstack/lib/python3.10/site-packages/neutronclient/v2_0/client.py", line 90, in exception_handler_v20
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] raise client_exc(message=error_message,
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] neutronclient.common.exceptions.Conflict: Port c4381527-ff2e-48b0-b4da-3e08928f7c1b is currently a parent port for trunk e938d9b3-82e5-4bc7-8bb3-7e075d2f8d9e.
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] Neutron server returns request_ids: ['req-27e65a3d-79e7-40f8-9525-24bd43592167']
2023-09-27 18:31:01.056 328858 ERROR nova.network.neutron [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884]
2023-09-27 18:31:01.057 328858 ERROR nova.compute.manager [None req-718be02e-89c0-44a3-9781-9079deab9990 959a3ebd6c2048ffa592d7c4bf59ae22 4b633c451ac74233be3721a3635275e5 - - default default] [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] Failed to deallocate network for instance. Error: Port c4381527-ff2e-48b0-b4da-3e08928f7c1b is currently a parent port for trunk e938d9b3-82e5-4bc7-8bb3-7e075d2f8d9e.
2023-09-27 18:31:01.095 328858 ERROR nova.compute.manager [None req-718be02e-89c0-44a3-9781-9079deab9990 959a3ebd6c2048ffa592d7c4bf59ae22 4b633c451ac74233be3721a3635275e5 - - default default] [instance: 08ca5cf4-c86a-4446-a031-a3b84ff47884] Setting instance vm_state to ERROR: neutronclient.common.exceptions.Conflict: Port c4381527-ff2e-48b0-b4da-3e08928f7c1b is currently a parent port for trunk e938d9b3-82e5-4bc7-8bb3-7e075d2f8d9e.
```

We need to handle this in a more graceful way, or perhaps re-order the ports to try deleting the subports first and then any other ports.

As a workaround for the user, they can detach the ports first and then they can delete it after.

Mohammed Naser (mnaser)
description: updated
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.