The following traceback is logged in screen-q-svc.log during VM deletion:
Traceback (most recent call last):
File "/opt/stack/neutron/neutron/plugins/ml2/managers.py", line 299, in _call_on_drivers
getattr(driver.obj, method_name)(context)
File "/opt/stack/neutron/neutron/openstack/common/lockutils.py", line 272, in inner
return f(*args, **kwargs)
File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 416, in delete_port_postcommit
self._delete_nve_member) if vxlan_segment else 0
File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 337, in _port_action_vxlan
func(vni, device_id, mcast_group, host_id)
File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/mech_cisco_nexus.py", line 160, in _delete_nve_member
vni)
File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 341, in delete_nve_member
self._edit_config(nexus_host, config=confstr)
File "/opt/stack/neutron/neutron/plugins/ml2/drivers/cisco/nexus/nexus_network_driver.py", line 111, in _edit_config
raise cexc.NexusConfigFailed(config=config, exc=e)
NexusConfigFailed: Failed to configure Nexus:
<config xmlns:xc="urn:ietf:params:xml:ns:netconf:base:1.0">
<configure>
<__XML__MODE__exec_configure>
<interface>
<nve>nve1</nve>
<__XML__MODE_if-nve>
<member>no member vni 9000</member>
</__XML__MODE_if-nve>
</interface>
</__XML__MODE__exec_configure>
</configure>
</config>
. Reason: ERROR: VNI delete validation failed
.
2015-02-03 15:51:35 ERROR thread=140215249078704 [neutron.plugins.ml2.plugin] mechanism_manager.delete_port_postcommit failed for port 4ad78d2a-c30f-4410-b8f8-d7c3ace379fd
Despite the error, the Nexus switch config is cleaned up correctly.
Steps to repro:
1. Pull in Rich's lockutil patch from staging/junoplus.
2. Using CLI, launch 100 VMs using the cirros image, each VM with 2 interfaces of 2 different networks.
3. Verify the N9Ks are configured correctly with the VXLAN parameters.
4. Check logs for error/traceback.
5. Note the errors in screen-n-cone.log:
screen-n-cond.log:2015-02-03 13:13:19.152 ERROR nova.scheduler.utils [req-6e3c07e8-2d6a-427b-8c27-858a7a821270 demo demo] [instance: a33d7012-3429-46f9-a160-3c863d2b74b2] Error from last host: qa5 (node qa5): [u'Traceback (most recent call last):\n', u' File "/opt/stack/nova/nova/compute/manager.py", line 2033, in _do_build_and_run_instance\n filter_properties)\n', u' File "/opt/stack/nova/nova/compute/manager.py", line 2164, in _build_and_run_instance\n instance_uuid=instance.uuid, reason=six.text_type(e))\n', u"RescheduledException: Build of instance a33d7012-3429-46f9-a160-3c863d2b74b2 was re-scheduled: Connection to neutron failed: HTTPConnectionPool(host='172.29.172.161', port=9696): Read timed out. (read timeout=30)\n"]
screen-n-cond.log:2015-02-03 13:13:20.050 ERROR nova.scheduler.utils [req-6e3c07e8-2d6a-427b-8c27-858a7a821270 demo demo] [instance: 9cd36f7f-13a5-41ea-84b2-3bc860ecb475] Error from last host: qa6 (node qa6): [u'Traceback (most recent call last):\n', u' File "/opt/stack/nova/nova/compute/manager.py", line 2033, in _do_build_and_run_instance\n filter_properties)\n', u' File "/opt/stack/nova/nova/compute/manager.py", line 2164, in _build_and_run_instance\n instance_uuid=instance.uuid, reason=six.text_type(e))\n', u"RescheduledException: Build of instance 9cd36f7f-13a5-41ea-84b2-3bc860ecb475 was re-scheduled: Connection to neutron failed: HTTPConnectionPool(host='172.29.172.161', port=9696): Read timed out. (read timeout=30)\n"]
6. Despite the errors, all 100 VMs come up active/running.
7. Using Horizon, delete 20 VMs at a time to delete all 100 VMs.
8. Verify the N9Ks config is removed correctly.
9. Check the traceback in screen-q-svc.log.
10. If no traceback, repeat steps 2 - 8.
I would see traceback in screen-n-cone.log during creation, but no traceback in screen-q-svc.log during deletion in the first trial. Then in subsequent trials, traceback in screen-n-cond.log during creation, and traceback in screen-q-svc,log during deletion.
Despite the traceback, all VMs are deleted and created successfully in subsequent trials.