Bug 2121476 - "<volume group name>: command not found" errors from /var/lib/rear/layout/diskrestore.sh during restoration
Summary: "<volume group name>: command not found" errors from /var/lib/rear/layout/dis...
Keywords:
Status: POST
Alias: None
Product: Red Hat Enterprise Linux 9
Classification: Red Hat
Component: rear
Version: 9.0
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Pavel Cahyna
QA Contact: Jakub Haruda
URL:
Whiteboard:
Depends On:
Blocks: 2121483
TreeView+ depends on / blocked
 
Reported: 2022-08-25 15:13 UTC by Pavel Cahyna
Modified: 2023-08-09 08:28 UTC (History)
2 users (show)

Fixed In Version:
Doc Type: No Doc Update
Doc Text:
Clone Of:
: 2121483 (view as bug list)
Environment:
Last Closed:
Type: Bug
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Issue Tracker RHELPLAN-132345 0 None None None 2022-08-25 15:22:02 UTC

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.


Note You need to log in before you can comment on or make changes to this bug.