Description of problem:
This bug comes out of bug 1421946. In that bug we're doing a live migration of an instance with an attached volume, which fails. The live migration failure itself is not the subject of this bug.
During the rollback we somehow end up calling ComputeManager._driver_detach_volume on the *destination*, which attempts to detach the volume from the ephemeral destination domain. This fails with:
libvirtError: Requested operation is not valid: cannot modify device on transient domain
The logs aren't 100% clear, but I am guessing this is called from _rollback_live_migration() when it calls self.compute_rpcapi.remove_volume_connection(context, instance, bdm.volume_id, dest). Note that the dest target is explicit.
Failure during rollback means that the rollback is incomplete, which is likely wasting resources.
To be clear this fix landed in openstack-nova in the following releases, OSP 10 >=14.0.8 and OSP 11 >=15.0.7. All versions of openstack-nova shipped with OSP 12 and 13 have this fix at release.