<div dir="ltr"><div>Hi all.</div><div>When I try to fix a bug:<a href="https://bugs.launchpad.net/nova/+bug/1242961">https://bugs.launchpad.net/nova/+bug/1242961</a>, </div><div>I get a trouble. </div><div><br></div><div>To reproduce the bug is very easy. Live migrate a vm in block_migration mode,</div>
<div>and then delelte the vm immediately.</div><div><br></div><div>The reason of this bug is as follow:</div><div>1. Because live migrate costs more time, so the vm will be deleted sucessfully</div><div>   before live migrate complete. And then, we will get an exception while live</div>
<div>   migrating.</div><div>2. After live migrate failed, we start to rollback. But, in the rollback method</div><div>   we will get or modify the info of vm from db. Because the vm has been deleted</div><div>   already, so we will get instance_not_found exception and rollback will be</div>
<div>   faild too.</div><div><br></div><div>I have two ways to fix the bug:</div><div>i)Add check in nova-api. When try to delete a vm, we return an error message if </div><div>the vm_state is LIVE_MIGRATING. This way is very simple, but need to carefully</div>
<div>consider. I have found a related discussion:</div><div><a href="http://lists.openstack.org/pipermail/openstack-dev/2013-October/017454.html">http://lists.openstack.org/pipermail/openstack-dev/2013-October/017454.html</a>, but</div>
<div>it has no result in the discussion.</div><div>ii)Before live migrate we get all the data needed by rollback method, and add a</div><div>new rollback method. The new method will clean up resources at destination based</div>
<div>on the above data(The resouces at source has been already cleaned up by </div><div>deleting).</div><div><br></div><div>I have no idea whitch one I should choose. Or, any other ideas?:)</div><div><br></div><div>Regards,</div>
<div>wanghong</div></div>