Public bug reported: Environment: Stable/Liberty with neutron ML2 (Mechanism Driver is a custom asynchronous driver based off the Opendaylight V2 driver) No agents or OVS bridges in use. One controller and network node and two compute nodes.
When a VM fails to start on any compute node, nova removes the host
binding from the VM but doesn't send a port update to neutron notifying
it about the hostbinding change.
When the same error state VM is deleted, nova doesn't send any events to
neutron. As a result the driver thinks the port is still active, owned
by an existing VM and bound to the host properly.
NOTE: This behavior is only seen with VM's in the ERROR state, ports for
VMs in ACTIVE state are deleted properly.
$ nova show vm1
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value
|
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | AUTO
|
| OS-EXT-AZ:availability_zone | nova
|
| OS-EXT-SRV-ATTR:host | -
|
| OS-EXT-SRV-ATTR:hostname | vm1
|
| OS-EXT-SRV-ATTR:hypervisor_hostname | -
|
| OS-EXT-SRV-ATTR:instance_name | instance-0000077a
|
| OS-EXT-SRV-ATTR:kernel_id | 72d053dc-aae8-4559-a7c4-107c980bd674
|
| OS-EXT-SRV-ATTR:launch_index | 0
|
| OS-EXT-SRV-ATTR:ramdisk_id | 3d25fd54-ffbc-4370-b971-2196a7963c24
|
| OS-EXT-SRV-ATTR:reservation_id | r-pujfofv9
|
| OS-EXT-SRV-ATTR:root_device_name | /dev/vda
|
| OS-EXT-SRV-ATTR:user_data | -
|
| OS-EXT-STS:power_state | 0
|
| OS-EXT-STS:task_state | -
|
| OS-EXT-STS:vm_state | error
|
| OS-SRV-USG:launched_at | -
|
| OS-SRV-USG:terminated_at | -
|
| accessIPv4 |
|
| accessIPv6 |
|
| config_drive |
|
| created | 2016-06-20T22:51:13Z
|
| fault | {"message": "No valid host was found.
There are not enough hosts available.", "code": 500, "details": " File
\"/opt/stack/nova/nova/conductor/manager.py\", line 739, in build_instances
|
| flavor | m1.small (2)
|
| hostId |
|
| id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| image | cirros-0.3.4-x86_64-uec
(50976ce1-c00e-4a80-9d72-6bf5d1abe54a)
|
| key_name | -
|
| metadata | {}
|
| name | vm1
|
| net1 network | 30.0.0.231
|
| os-extended-volumes:volumes_attached | []
|
| security_groups | default
|
| status | ERROR
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
| updated | 2016-06-20T22:51:23Z
|
| user_id | 1e3e7e3addc14861afe177f285e43b40
|
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
$ neutron port-show 5efcfa1b-1300-4194-8229-11863f85d0a9
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| Field | Value
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | True
|
| allowed_address_pairs |
|
| binding:host_id | bxb-ds-50
|
| binding:profile | {}
|
| binding:vif_details | {"port_filter": false, "vhostuser_ovs_plug": false,
"vhostuser_socket": "/tmp/sock-fa163eaba0d2", "vhostuser_mode": "server"} |
| binding:vif_type | vhostuser
|
| binding:vnic_type | normal
|
| device_id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| device_owner | compute:nova
|
| dns_assignment | {"hostname": "host-30-0-0-231", "ip_address":
"30.0.0.231", "fqdn": "host-30-0-0-231.openstacklocal."}
|
| dns_name |
|
| extra_dhcp_opts |
|
| fixed_ips | {"subnet_id": "880aac1b-662e-4a4f-b640-7929d69a2b3d",
"ip_address": "30.0.0.231"} |
| id | 5efcfa1b-1300-4194-8229-11863f85d0a9
|
| mac_address | fa:16:3e:ab:a0:d2
|
| name |
|
| network_id | cf31ce68-4c5b-4e22-b725-dff0b6511a3d
|
| port_security_enabled | True
|
| security_groups | ae59a53e-38f2-471d-9de9-b8aea815dc27
|
| status | ACTIVE
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
$ nova delete vm1
Request to delete server vm1 has been accepted.
$ nova show vm1
ERROR (CommandError): No server with a name or ID of 'vm1' exists.
$ neutron port-show 5efcfa1b-1300-4194-8229-11863f85d0a9
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| Field | Value
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | True
|
| allowed_address_pairs |
|
| binding:host_id | bxb-ds-50
|
| binding:profile | {}
|
| binding:vif_details | {"port_filter": false, "vhostuser_ovs_plug": false,
"vhostuser_socket": "/tmp/sock-fa163eaba0d2", "vhostuser_mode": "server"} |
| binding:vif_type | vhostuser
|
| binding:vnic_type | normal
|
| device_id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| device_owner | compute:nova
|
| dns_assignment | {"hostname": "host-30-0-0-231", "ip_address":
"30.0.0.231", "fqdn": "host-30-0-0-231.openstacklocal."}
|
| dns_name |
|
| extra_dhcp_opts |
|
| fixed_ips | {"subnet_id": "880aac1b-662e-4a4f-b640-7929d69a2b3d",
"ip_address": "30.0.0.231"} |
| id | 5efcfa1b-1300-4194-8229-11863f85d0a9
|
| mac_address | fa:16:3e:ab:a0:d2
|
| name |
|
| network_id | cf31ce68-4c5b-4e22-b725-dff0b6511a3d
|
| port_security_enabled | True
|
| security_groups | ae59a53e-38f2-471d-9de9-b8aea815dc27
|
| status | ACTIVE
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
** Affects: nova
Importance: Undecided
Status: New
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1594604
Title:
Nova does not delete or update neutron port for failed VMs
Status in OpenStack Compute (nova):
New
Bug description:
Environment:
Stable/Liberty with neutron ML2 (Mechanism Driver is a custom asynchronous
driver based off the Opendaylight V2 driver)
No agents or OVS bridges in use.
One controller and network node and two compute nodes.
When a VM fails to start on any compute node, nova removes the host
binding from the VM but doesn't send a port update to neutron
notifying it about the hostbinding change.
When the same error state VM is deleted, nova doesn't send any events
to neutron. As a result the driver thinks the port is still active,
owned by an existing VM and bound to the host properly.
NOTE: This behavior is only seen with VM's in the ERROR state, ports
for VMs in ACTIVE state are deleted properly.
$ nova show vm1
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Property | Value
|
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| OS-DCF:diskConfig | AUTO
|
| OS-EXT-AZ:availability_zone | nova
|
| OS-EXT-SRV-ATTR:host | -
|
| OS-EXT-SRV-ATTR:hostname | vm1
|
| OS-EXT-SRV-ATTR:hypervisor_hostname | -
|
| OS-EXT-SRV-ATTR:instance_name | instance-0000077a
|
| OS-EXT-SRV-ATTR:kernel_id | 72d053dc-aae8-4559-a7c4-107c980bd674
|
| OS-EXT-SRV-ATTR:launch_index | 0
|
| OS-EXT-SRV-ATTR:ramdisk_id | 3d25fd54-ffbc-4370-b971-2196a7963c24
|
| OS-EXT-SRV-ATTR:reservation_id | r-pujfofv9
|
| OS-EXT-SRV-ATTR:root_device_name | /dev/vda
|
| OS-EXT-SRV-ATTR:user_data | -
|
| OS-EXT-STS:power_state | 0
|
| OS-EXT-STS:task_state | -
|
| OS-EXT-STS:vm_state | error
|
| OS-SRV-USG:launched_at | -
|
| OS-SRV-USG:terminated_at | -
|
| accessIPv4 |
|
| accessIPv6 |
|
| config_drive |
|
| created | 2016-06-20T22:51:13Z
|
| fault | {"message": "No valid host was
found. There are not enough hosts available.", "code": 500, "details": " File
\"/opt/stack/nova/nova/conductor/manager.py\", line 739, in build_instances
|
| flavor | m1.small (2)
|
| hostId |
|
| id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| image | cirros-0.3.4-x86_64-uec
(50976ce1-c00e-4a80-9d72-6bf5d1abe54a)
|
| key_name | -
|
| metadata | {}
|
| name | vm1
|
| net1 network | 30.0.0.231
|
| os-extended-volumes:volumes_attached | []
|
| security_groups | default
|
| status | ERROR
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
| updated | 2016-06-20T22:51:23Z
|
| user_id | 1e3e7e3addc14861afe177f285e43b40
|
+--------------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
$ neutron port-show 5efcfa1b-1300-4194-8229-11863f85d0a9
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| Field | Value
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | True
|
| allowed_address_pairs |
|
| binding:host_id | bxb-ds-50
|
| binding:profile | {}
|
| binding:vif_details | {"port_filter": false, "vhostuser_ovs_plug": false,
"vhostuser_socket": "/tmp/sock-fa163eaba0d2", "vhostuser_mode": "server"} |
| binding:vif_type | vhostuser
|
| binding:vnic_type | normal
|
| device_id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| device_owner | compute:nova
|
| dns_assignment | {"hostname": "host-30-0-0-231", "ip_address":
"30.0.0.231", "fqdn": "host-30-0-0-231.openstacklocal."}
|
| dns_name |
|
| extra_dhcp_opts |
|
| fixed_ips | {"subnet_id":
"880aac1b-662e-4a4f-b640-7929d69a2b3d", "ip_address": "30.0.0.231"}
|
| id | 5efcfa1b-1300-4194-8229-11863f85d0a9
|
| mac_address | fa:16:3e:ab:a0:d2
|
| name |
|
| network_id | cf31ce68-4c5b-4e22-b725-dff0b6511a3d
|
| port_security_enabled | True
|
| security_groups | ae59a53e-38f2-471d-9de9-b8aea815dc27
|
| status | ACTIVE
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
$ nova delete vm1
Request to delete server vm1 has been accepted.
$ nova show vm1
ERROR (CommandError): No server with a name or ID of 'vm1' exists.
$ neutron port-show 5efcfa1b-1300-4194-8229-11863f85d0a9
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| Field | Value
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
| admin_state_up | True
|
| allowed_address_pairs |
|
| binding:host_id | bxb-ds-50
|
| binding:profile | {}
|
| binding:vif_details | {"port_filter": false, "vhostuser_ovs_plug": false,
"vhostuser_socket": "/tmp/sock-fa163eaba0d2", "vhostuser_mode": "server"} |
| binding:vif_type | vhostuser
|
| binding:vnic_type | normal
|
| device_id | 5d37f0b1-d3ac-4246-badc-b1a2aa6c3137
|
| device_owner | compute:nova
|
| dns_assignment | {"hostname": "host-30-0-0-231", "ip_address":
"30.0.0.231", "fqdn": "host-30-0-0-231.openstacklocal."}
|
| dns_name |
|
| extra_dhcp_opts |
|
| fixed_ips | {"subnet_id":
"880aac1b-662e-4a4f-b640-7929d69a2b3d", "ip_address": "30.0.0.231"}
|
| id | 5efcfa1b-1300-4194-8229-11863f85d0a9
|
| mac_address | fa:16:3e:ab:a0:d2
|
| name |
|
| network_id | cf31ce68-4c5b-4e22-b725-dff0b6511a3d
|
| port_security_enabled | True
|
| security_groups | ae59a53e-38f2-471d-9de9-b8aea815dc27
|
| status | ACTIVE
|
| tenant_id | 4c3ddd212d4f4af9b4d0d55e89b43125
|
+-----------------------+-------------------------------------------------------------------------------------------------------------------------------+
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1594604/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp

