[Bug 2142196] Re: VG with missing PV will prevent installing

Olivier Gayot 2142196 at bugs.launchpad.net
Fri Apr 24 14:32:50 UTC 2026


** Changed in: subiquity
       Status: Fix Committed => Fix Released

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to curtin.
https://bugs.launchpad.net/bugs/2142196

Title:
  VG with missing PV will prevent installing

Status in curtin:
  Fix Committed
Status in probert:
  Fix Committed
Status in subiquity:
  Fix Released

Bug description:
  As seen in private reports, the installation of Ubuntu can fail if the
  installer sees a VG with missing PVs. This can happen for multiple
  reasons, but is most likely to happen in a SAN environment.

  In such a situation, probert will add a PV called "[unknown]" for each
  missing PV. We need to make sure that probert consumers exclude PVs
  called '[unknown]" as they do not map to a valid block device.

  ```
  Traceback (most recent call last):
    File "subiquity/models/filesystem.py", line 1512, in process_probe_data
      self._orig_config = storage_config.extract_storage_config(self._probe_data)[
    File "curtin/storage_config.py", line 1372, in extract_storage_config
      found_cfgs, found_errs = parser.parse()
    File "curtin/storage_config.py", line 969, in parse
      entry = self.lvm_volgroup_asdict(vg_name, vg_config)
    File "curtin/storage_config.py", line 1040, in lvm_volgroup_asdict
      blockdev_data = self.blockdev_data[pvol_bdev]
  KeyError: None
  ```

  Furthermore, debugging showed that curtin would also try to wipe
  "[unknown]" volumes and fail if instructed to delete a VG that has
  missing PVs.

  ```
  Traceback (most recent call last):
    File "curtin/block/clear_holders.py", line 148, in shutdown_lvm
      block.quick_zero(pv, partitions=False)
      ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
    File "curtin/block/__init__.py", line 1194, in quick_zero
      raise ValueError("%s: not an existing file or block device" % path)
  ValueError: [unknown]: not an existing file or block device
  ```

  How to reproduce
  ----------------
  1. Spawn a VM with two disks, and create a VG out of them

    $ kvm-test --install --iso /srv/iso/resolute-live-server-amd64.iso
  --disk-count 2

    Once possible, spawn a shell and run:

    $ vgcreate test-vg /dev/vda /dev/vdb
    $ lvcreate -L 5G -n test-lv test-vg
    $ poweroff

  2. Now boot the VM again with only one disk:

    $ kvm-test --install --iso /srv/iso/resolute-live-server-amd64.iso
  --disk-count 1 --reuse-target

    Navigate to the storage screen (there will be no error dialog) but
  the logs will show that the non-restricted block probing operation
  failed:

  block-discover:2030 block probing failed restricted=False
  Traceback (most recent call last):
  [...]
    File "/snap/subiquity/7028/lib/python3.12/site-packages/curtin/storage_config.py", line 1040, in lvm_volgroup_asdict
      blockdev_data = self.blockdev_data[pvol_bdev]
  KeyError: None

    The logs are not showing it but pvol_bdev was assigned to None
  because of

              pvol_bdev = self.lookup_devname(pvol) where pvol =
  "[unknown]"

  Workaround
  ----------

  * Run $ vgdelete "${vg_with_missing_pvs}"
  * Restart the installation

To manage notifications about this bug go to:
https://bugs.launchpad.net/curtin/+bug/2142196/+subscriptions





More information about the foundations-bugs mailing list