Bug 2121476

Summary: "<volume group name>: command not found" errors from /var/lib/rear/layout/diskrestore.sh during restoration
Product: Red Hat Enterprise Linux 9 Reporter: Pavel Cahyna <pcahyna>
Component: rearAssignee: Pavel Cahyna <pcahyna>
Status: CLOSED ERRATA QA Contact: Jakub Haruda <jharuda>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.0CC: jharuda, pcahyna
Target Milestone: rcKeywords: Triaged
Target Release: ---Flags: pm-rhel: mirror+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: rear-2.6-18.el9 Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of:
: 2121483 (view as bug list) Environment:
Last Closed: 2023-11-07 08:37:21 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 2121483    

Description Pavel Cahyna 2022-08-25 15:13:51 UTC
Description of problem:

During restoration of a storage layout with LVM, this message appears in the log:
/var/lib/rear/layout/diskrestore.sh: line <n>: <vg>: command not found

where <vg> is a volume group name.

This is because of this line in usr/share/rear/layout/prepare/GNU/Linux/110_include_lvm_code.sh

if IsInArray $vg \"\${create_logical_volumes[@]}\" && ! \$IsInArray $vg \"\${create_thin_volumes_only[@]}\" ; then

which after quote removal becomes this in disklayout.sh

... $IsInArray $vg "${create_thin_volumes_only[@]}"

and this is equivalent to just $vg "${create_thin_volumes_only[@]}", because $IsInArray does not exist (IsInArray is a shell function, not a variable). The line should read just

if IsInArray $vg \"\${create_logical_volumes[@]}\" && ! IsInArray $vg \"\${create_thin_volumes_only[@]}\" ; then

This problem does not exist upstream, I probably backported an old version of the change in https://github.com/rear/rear/pull/2691.

Version-Release number of selected component (if applicable):
2.6

How reproducible:

for the message: recovery of a system with LVM, most likely it depends on migration mode being in use (MIGRATION_MODE=TRUE)

Not sure what to do to trigger an actual problem, probably it involves a thin pool.

Comment 1 Pavel Cahyna 2023-06-21 09:32:56 UTC
On a further examination, the problem will make a difference only if $vg is in the ${create_thin_volumes_only[@]} array and the LV is not thin. This would happen only with FORCE_VGCFGRESTORE=yes and with a VG that has a thin pool and also a non-thin LV. Also, MIGRATION_MODE must be off.

Comment 10 errata-xmlrpc 2023-11-07 08:37:21 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory (rear bug fix and enhancement update), and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2023:6571