Bug 2121483

Summary: "<volume group name>: command not found" errors from /var/lib/rear/layout/diskrestore.sh during restoration
Product: Red Hat Enterprise Linux 8 Reporter: Pavel Cahyna <pcahyna>
Component: rearAssignee: Pavel Cahyna <pcahyna>
Status: POST --- QA Contact: Jakub Haruda <jharuda>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 8.7CC: jharuda, ovasik, pcahyna, rhel-cs-system-management-subsystem-qe
Target Milestone: rcKeywords: Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
Story Points: ---
Clone Of: 2121476 Environment:
Last Closed: 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: 2121476    
Bug Blocks:    

Description Pavel Cahyna 2022-08-25 15:28:48 UTC
+++ This bug was initially created as a clone of Bug #2121476 +++

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 2 Pavel Cahyna 2023-06-21 09:34:05 UTC
For notes on reproducer see https://bugzilla.redhat.com/show_bug.cgi?id=2121476#c1