Comment 9 for bug 1588875

Revision history for this message
Wesley Wiedenmeier (wesley-wiedenmeier) wrote :

The error that was occuring was happening because the lvm configuration that curtin was trying to shut down from the last installation had multiple logical volumes with data on a the physical volume on /dev/sda1. Curtin was shutting down the lvm configuration as expected, but crashed because it shut down the entire volume group when handling the first logical volume, so was unable to find data in /sys/block/dm-1/ which mapped to the second logical volume.

Curtin did have logic in place to handle this issue, but was expecting for an IOError to be thrown. On systems where curtin is running under python3 everything worked correctly, which is why you saw no issues with xenial, as python3 would have raised a FileNotFound error, which would be caught as an IOError. However, on python2, an OSError would have been raised instead, and this error was not trapped.

There is a simple fix available in https://code.launchpad.net/~wesley-wiedenmeier/curtin/1588875 pending a future refactor of clear_holders.

A build of curtin with this fix included is available in my ppa:
https://launchpad.net/~wesley-wiedenmeier/+archive/ubuntu/test/+build/10030838

The ppa can be added with
apt-add-repository ppa:wesley-wiedenmeier/test

If you get a chance, please test this out and verify that it works in your environment, thanks.