<div dir="ltr"><div><div><div>Bug report: <a href="https://bugs.launchpad.net/nova/+bug/1324934">https://bugs.launchpad.net/nova/+bug/1324934</a><br><br></div>TL;DR version of the bug report:  A dropped connection during nova->neutron call to create a port will result in nova deciding that the instance can't be booted, and therefore terminating it.  Nova calls get_ports() from neutron during this termination, but an empty list is returned so no ports are deleted.  However, the port actually is created, and associated to the now-deleted instance.<br>
<br></div>I suspect there is a race condition between create_port and get_ports in neutron, which could be fixed by using @lockutils.synchronized(nstance_uuid) on those 2 methods.<br><br>I'm not very familiar with the neutron codebase though, and would appreciate some feedback or discussion on how likely people think my diagnosis and suggested fix are, and whether similar problems have been found in the past.<br>
<br></div>  Thanks,<br><br>Matthew Gilliard<br>(HP Cloud)<br></div>