Description of problem: I have not directly experienced this issue, but based on a report via IRC... If a user attempts to upgrade from RHEL 8 to RHEL 9 via the LEAPP tooling and they do not have the vdo and kmod-kvdo packages installed, the vdo inhibitor prevents the system from being upgraded. Actual results: When kmod-kvdo and vdo packages are not present, the upgrade is inhibited due to the vdo_check. Expected results: When kmod-kvdo and vdo packages are not present, the upgrade does not attempt to perform the vdo_check and continues.
TL;DR: This is the designed behavior of the CheckVdo LEAPP actor. Details: The change in going from pre-RHEL9 to RHEL9 involves the necessary conversion of existing VDOs from being managed via VDO's python-based management to LVM-based management. The CheckVdo LEAPP actor takes an explicitly conservative approach (to prevent loss of access to data) in determining whether or not a block device is one of: 1. non-VDO 2. pre-conversion VDO 3. completed post-conversion VDO 4. incomplete post-conversion VDO (LVM configuration was not completed; e.g., due to a system crash) A post-conversion VDO is not identified as 'vdo' but as 'lvm'. To correctly categorize such devices CheckVdo requires a utility that understands the post-conversion VDO format. The VDO-provided vdoprepareforlvm utility is used to perform this check. The lack of vdoprepareforlvm (or an unexpected error condition) adds the additional categorization of 5. undetermined Note that undetermined could be the result of the user (however erroneously) leaving the system without the software to perform the necessary checks. In keeping with CheckVdo's conservative approach the categorization as undetermined (in addition to pre-conversion VDO and incomplete post-conversion VDO) results in CheckVdo inhibiting upgrade. As CheckVdo errs on the side of caution if the user knows this to be the case they may specify an override to CheckVdo to allow the upgrade to proceed. --- From the CheckVdo description: Check if VDO devices need to be migrated to lvm management. `Background` ============ In RHEL 9.0 the independent VDO management software, `vdo manager`, is superseded by LVM management. Existing VDOs must be converted to LVM-based management *before* upgrading to RHEL 9.0. The `CheckVdo` actor provides a pre-upgrade check for VDO devices that have not been converted and, if any are found, produces an inhibitory report during upgrade check phase. If none are found `CheckVdo` does not produce a report concerning such VDO devices. As there currently exists the theoretical possibility that a VDO device may not complete its conversion to LVM-based management (e.g., via a poorly timed system crash during the conversion) `CheckVdo` also provides a pre-upgrade check for VDO devices in this state. If any are found `CheckVdo` produces an inhibitory report during upgrade check phase. If none are found `CheckVdo` does not produce a report concerning such VDO devices. If the VdoConversionInfo model indicates unexpected errors occurred during scanning CheckVdo will produce appropriate inhibitory reports. If the VdoConversionInfo model indicates conditions exist where VDO devices could exist but the necessary software to check was not installed on the system CheckVdo will present a dialog to the user. This dialog will ask the user to either install the required software if the user knows or is unsure that VDO devices exist or to approve the continuation of the upgrade if the user is certain that either there are no VDO devices present or that all VDO devices have been successfully converted. To maximize safety CheckVdo operates against all block devices which match the criteria for potential VDO devices. Given the dynamic nature of device presence within a system some devices which may have been present during leapp discovery may not be present when CheckVdo runs. As CheckVdo defaults to producing inhibitory reports if a device cannot be checked (for any reason) this dynamism may be problematic. To prevent CheckVdo producing an inhibitory report for devices which are dynamically no longer present within the system the user may answer the previously mentioned dialog in the affirmative when the user knows that all VDO devices have been converted. This will circumvent checks of block devices.