So important thing to notice here and is not mentioned by the bug report is that this is reported with CONF.libvirt_images_type set to 'lvm'.
Looking at the snapshotting code in the libvirt driver and the line that causes the compute stack trace - when running an LVM backed instance with an attached volume libvirt_utils.find_disk method seems to give us the wrong disk back.
It would be good to see the libvirt.xml generated for the offending instance, but seeing how poorly tested the find_disk method is - I would not be surprised that it is in fact the cause of the bug.
So important thing to notice here and is not mentioned by the bug report is that this is reported with CONF.libvirt_ images_ type set to 'lvm'.
Looking at the snapshotting code in the libvirt driver and the line that causes the compute stack trace - when running an LVM backed instance with an attached volume libvirt_ utils.find_ disk method seems to give us the wrong disk back.
It would be good to see the libvirt.xml generated for the offending instance, but seeing how poorly tested the find_disk method is - I would not be surprised that it is in fact the cause of the bug.