[Bug 531599] [NEW] device mappings for partitions not removed after build using --raw, leading to filesystem corruption

Launchpad Bug Tracker 531599 at bugs.launchpad.net
Tue May 22 09:03:04 UTC 2012


You have been subscribed to a public bug by Louis Bouchard (louis-bouchard):

SRU Request for Lucid

[Impact] This bug occurs systematically when the --raw option is used to
create a VM. This results in file system data corruption messages in the
VM created.

[Development/Stable Fix] Fixed in 0.12.4+bzr475-0ubuntu1 for precise as stated in comment #9 with the following addition :
  [ Louis Bouchard ]
  * Remove dev maps created by parted. (LP: #531599)


[Test Case] section with detailed instructions how to reproduce the bug. These should allow someone who is not familiar with the affected package to reproduce the bug and verify that the updated package fixes the problem.

On an unmodified system with an existging 8Gb LVM volume named
/dev/sysvg/testvmvol, run the following command :

ubuntu-vm-builder kvm natty --lang=en_US --hostname=testvm
--rootsize=8000 --mem=10240 --cpus=2 --rootpass=X --arch=amd64
--libvirt=qemu:///system --raw=/dev/sysvg/testvmvol

On an unmodified system, once completed, the dmsetup list command will show the following :
$ dmsetup ls
sysvg-testvmvol1p1        (252, 2)
sysvg-testvmvol1        (252, 1)
sysvg-testvmvol (252, 0)

The sysvg-testvmvol1p1 table should not be there

[Regression Potential] This fix needs to be backported to the LTS
version to avoid potential file system corruption.

---

I've tried to install a vm using an LVM logical volume with --raw. The
problem was that I used a too small logical volume.

vmbuilder told me:
2010-03-03 21:33:59,923 INFO    : Adding partition table to disk image: /dev/mapper/leo01-test--disk
2010-03-03 21:34:00,007 INFO    : Adding type 1 partition to disk image: /dev/mapper/leo01-test--disk
2010-03-03 21:34:00,879 INFO    : Adding type 3 partition to disk image: /dev/mapper/leo01-test--disk
2010-03-03 21:34:00,890 INFO    : [0] ../../libparted/filesys.c:147 (ped_file_system_type_get): File system alias linux-swap(new) is deprecated
2010-03-03 21:34:00,892 INFO    : Cleaning up
Traceback (most recent call last):
  File "/usr/bin/vmbuilder", line 29, in <module>
    VMBuilder.run()
  File "/usr/lib/python2.6/dist-packages/VMBuilder/__init__.py", line 65, in run
    frontend.run()
  File "/usr/lib/python2.6/dist-packages/VMBuilder/plugins/cli/__init__.py", line 68, in run
    vm.create()
  File "/usr/lib/python2.6/dist-packages/VMBuilder/vm.py", line 480, in create
    disk.create_partitions(self)
  File "/usr/lib/python2.6/dist-packages/VMBuilder/disk.py", line 416, in create_partitions
    disk.create(vm.workdir)
  File "/usr/lib/python2.6/dist-packages/VMBuilder/disk.py", line 100, in create
    part.create(self)
  File "/usr/lib/python2.6/dist-packages/VMBuilder/disk.py", line 244, in create
    run_cmd('parted', '--script', '--', disk.filename, 'mkpart', 'primary', self.parted_fstype(), self.begin, self.end)
  File "/usr/lib/python2.6/dist-packages/VMBuilder/util.py", line 135, in run_cmd
    raise VMBuilderException, "Process (%s) returned %d. stdout: %s, stderr: %s" % (args.__repr__(), status, stdout, stderr)
VMBuilder.exception.VMBuilderException: Process (['parted', '--script', '--', '/dev/mapper/leo01-test--disk', 'mkpart', 'primary', 'linux-swap(new)', '9', '1032']) returned 1. stdout: Error: The location 1032 is outside of the device /dev/mapper/leo01-test--disk.
, stderr: [0] ../../libparted/filesys.c:147 (ped_file_system_type_get): File system alias linux-swap(new) is deprecated

While this is a lot of noise, telling me 'location 1032 is outside of
the device...' made me recognize my mistake.

The problem is that I wasn't able to just remove the logical volume, create a bigger one and start again:
 sudo lvremove /dev/mapper/leo01-test--disk
   Can't remove open logical volume "test-disk"

The reason is that there's another device map set up by vmbuilder:
/dev/mapper/leo01-test--diskp1

This is because the first (root) partition did fit on the logical
volume, but only the second (swap) one not.

I had to drop the device mapping using
 sudo dmsetup remove /dev/mapper/leo01-test--diskp1

This would allow me to lvremove the logical volume now.

I would expect that vmbuilder cleans up on exceptions like this and
remove the device mappings for the inner partitions.

** Affects: vm-builder (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: vm-builder (Ubuntu Lucid)
     Importance: Undecided
         Status: New

-- 
device mappings for partitions not removed after build using --raw, leading to filesystem corruption
https://bugs.launchpad.net/bugs/531599
You received this bug notification because you are a member of Ubuntu Sponsors Team, which is subscribed to the bug report.



More information about the Ubuntu-sponsors mailing list