Activity log for bug #1304695

Date Who What changed Old value New value Message
2014-04-08 21:51:41 Thang Pham bug added bug
2014-04-08 21:51:49 Thang Pham cinder: assignee Thang Pham (thang-pham)
2014-04-09 04:01:34 Thang Pham description Instance is not using the correct volume snapshot file after reboot. Steps to recreate bug: 1. Create a volume 2. Attach volume to a running instance. 3. Take an online snapshot of the volume. Note that the active volume used by the instance is now switched to volume-<uuid>.<snapshot-uuid>. 4. Shutdown the instance. 5. Start the instance. If you invoke virsh dumpxml <instance>, you will see that it is re-attaching the base volume ( volume-<uuid>) to the instance and not the snapshot volume (volume-<uuid>.<snapshot-uuid>). The expected behavior is to have the snapshot volume re-attach to the instance. This bug will cause data corruption in the snapshot and volume. I believe the main reason for this happening is contained in nova. i.e. nova/virt/libvirt/volume.py. The LibvirtGlusterfsVolumeDriver.connect_volume() method does not know how to find the active volume file that is contained in volume-<uuid>.info. Instance is not using the correct volume snapshot file after reboot. Steps to recreate bug: 1. Create a volume 2. Attach volume to a running instance. 3. Take an online snapshot of the volume. Note that the active volume used by the instance is now switched to volume-<uuid>.<snapshot-uuid>. 4. Shutdown the instance. 5. Start the instance. If you invoke virsh dumpxml <instance>, you will see that it is re-attaching the base volume ( volume-<uuid>) to the instance and not the snapshot volume (volume-<uuid>.<snapshot-uuid>). The expected behavior is to have the snapshot volume re-attach to the instance. This bug will cause data corruption in the snapshot and volume. It looks like the nova volume manager is using a stale copy of the block_device_mapping. The block_device_mapping needs to be refreshed in order for the updated volume snapshot to be used. On power on, the nova manager (nova/compute/manager.py ) does: 1. start_instance 2. _power_on 3. _get_instance_volume_block_device_info The structure for this method is: def _get_instance_volume_block_device_info(self, context, instance, refresh_conn_info=False, bdms=None): if not bdms: bdms = (block_device_obj.BlockDeviceMappingList. get_by_instance_uuid(context, instance['uuid'])) block_device_mapping = ( driver_block_device.convert_volumes(bdms) + driver_block_device.convert_snapshots(bdms) + driver_block_device.convert_images(bdms)) .... block_device_obj.BlockDeviceMappingList.get_by_instance_uuid() goes and queries the database to construct the bdms, which will contain stale data.
2014-04-10 14:35:56 Nikola Đipanov bug task added nova
2014-04-10 14:36:09 Nikola Đipanov nova: importance Undecided Medium
2014-04-10 14:52:55 Thang Pham nova: assignee Thang Pham (thang-pham)
2014-04-11 13:43:29 Mike Perez tags glusterfs drivers glusterfs
2014-04-15 03:06:48 OpenStack Infra nova: status New In Progress
2014-04-15 03:07:06 Thang Pham cinder: status New In Progress
2014-04-21 14:26:35 Eric Harney bug task deleted cinder
2014-04-21 14:26:53 Eric Harney tags drivers glusterfs drivers glusterfs libvirt
2014-05-17 23:12:23 OpenStack Infra nova: status In Progress Fix Committed
2014-06-02 17:07:27 Vish Ishaya tags drivers glusterfs libvirt drivers glusterfs icehouse-backport-potential libvirt
2014-06-11 13:44:43 Thierry Carrez nova: status Fix Committed Fix Released
2014-06-11 13:44:43 Thierry Carrez nova: milestone juno-1
2014-07-31 14:13:00 OpenStack Infra tags drivers glusterfs icehouse-backport-potential libvirt drivers glusterfs icehouse-backport-potential in-stable-icehouse libvirt
2014-08-07 12:31:28 Chuck Short tags drivers glusterfs icehouse-backport-potential in-stable-icehouse libvirt drivers glusterfs in-stable-icehouse libvirt
2014-08-07 12:32:03 Chuck Short nominated for series nova/icehouse
2014-08-07 12:32:03 Chuck Short bug task added nova/icehouse
2014-08-07 12:32:15 Chuck Short nova/icehouse: status New Fix Committed
2014-08-07 12:32:15 Chuck Short nova/icehouse: milestone 2014.1.2
2014-08-07 17:00:46 Chuck Short nova/icehouse: status Fix Committed Fix Released
2014-09-23 10:15:07 Alan Pevec tags drivers glusterfs in-stable-icehouse libvirt drivers glusterfs libvirt
2014-09-23 10:15:29 Alan Pevec nova/icehouse: importance Undecided Medium
2014-09-23 10:16:11 Alan Pevec nova/icehouse: assignee Eric Harney (eharney)
2014-10-16 08:29:40 Thierry Carrez nova: milestone juno-1 2014.2