#3250 PR merged: In 990_verify_rootfs.sh fix issue #3021

Labels: enhancement, fixed / solved / done, minor bug

jsmeix opened issue at 2024-06-14 13:22:

  • Type: Minor Bug Fix / Enhancement

  • Impact: Low
    Only avoid a "false positive" check message.

  • Reference to related issue (URL):
    https://github.com/rear/rear/issues/3021

  • How was this pull request tested?
    By me on my Fedora 40 system

  • Description of the changes in this pull request:

In build/default/990_verify_rootfs.sh
for each 'not found' shared object
(i.e. a shared object that was 'not found' by 'ldd')
check whether or not the shared object
may exist nevertheless in the recovery system
and if yes, we may sufficiently safely assume
things are OK in the ReaR recovery system
so we do not report it as missing to the user
(for debugging we have all in the log), see
https://github.com/rear/rear/issues/3021#issuecomment-2165453757

jsmeix commented at 2024-06-14 13:25:

How it looks with this changes on my Fedora 40 system:

[root@linux rear.github.master]# usr/sbin/rear -D mkrescue
...
Testing each binary with 'ldd' and look for 'not found' libraries within the recovery system
/usr/lib64/systemd/libsystemd-core-255.4-1.fc40.so requires libraries were 'ldd' shows 'not found'
libsystemd-shared-255.4-1.fc40.so was not found by 'ldd' but exists as /var/tmp/rear.gJXDcJNvfEo9wJr/rootfs/usr/lib64/systemd/libsystemd-shared-255.4-1.fc40.so

jsmeix commented at 2024-06-14 13:38:

With latest changes how it looks in non-verbose mode

[root@linux rear.github.master]# usr/sbin/rear mkrescue
[root@linux rear.github.master]# echo $?
0

i.e. no message because there is no error
and in verbose mode

[root@linux rear.github.master]# usr/sbin/rear -v mkrescue
...
Testing that the recovery system in /var/tmp/rear.py2WKaUvGlU7Ekg/rootfs contains a usable system
/usr/lib64/systemd/libsystemd-core-255.4-1.fc40.so requires libraries were 'ldd' shows 'not found'
/usr/lib64/systemd/libsystemd-core-255.4-1.fc40.so requires libsystemd-shared-255.4-1.fc40.so which was not found by 'ldd' but exists as /var/tmp/rear.py2WKaUvGlU7Ekg/rootfs/usr/lib64/systemd/libsystemd-shared-255.4-1.fc40.so

i.e. all relevant messages to not omit something
from the user in verbose mode i.e. 'verbose' means 'verbose' ;-)

jsmeix commented at 2024-06-17 08:04:

@rear/contributors
provided there are no objections I would like
to merge it tomorrow afternoon.

pcahyna commented at 2024-06-18 14:34:

@jsmeix sorry for being late, but I don't understand the "were" in messages. I think you meant "where".

Regarding "tested by me on my Fedora 40 system", the CI runs can also help, despite erroring out after end (the output from mkbackup is available).

CI runs on another version show:
https://artifacts.dev.testing-farm.io/7dcec2fa-29d9-4265-b6a5-f9ed914aa214/work-backup-and-restorei10xvj4m/tests/plans/backup-and-restore/execute/data/guest/default-0/make-backup-and-restore-iso-1/journal.txt

:: [ 14:49:53 ] :: [   LOG    ] :: Testing each binary with 'ldd' and look for 'not found' libraries within the recovery system
:: [ 14:49:53 ] :: [   LOG    ] :: /usr/lib64/systemd/libsystemd-core-255.7-1.fc40.so requires additional libraries
:: [ 14:49:53 ] :: [   LOG    ] :: libsystemd-shared-255.7-1.fc40.so => not found
:: [ 14:49:53 ] :: [   LOG    ] :: ReaR recovery system in '/var/tmp/rear.W6td9J7FFja4jG5/rootfs' needs additional libraries, check /var/log/rear/rear-ip-172-31-23-181.log for details

while on this PR they show:
https://artifacts.dev.testing-farm.io/1fb0d381-05a4-4a03-96bd-d73db0f39fe6/work-backup-and-restore9b6fnl61/tests/plans/backup-and-restore/execute/data/guest/default-0/make-backup-and-restore-iso-1/journal.txt

:: [ 13:44:29 ] :: [   LOG    ] :: Testing each binary with 'ldd' and look for 'not found' libraries within the recovery system
:: [ 13:44:29 ] :: [   LOG    ] :: /usr/lib64/systemd/libsystemd-core-255.7-1.fc40.so requires libraries were 'ldd' shows 'not found'
:: [ 13:44:29 ] :: [   LOG    ] :: /usr/lib64/systemd/libsystemd-core-255.7-1.fc40.so requires libsystemd-shared-255.7-1.fc40.so which was not found by 'ldd' but exists as /var/tmp/rear.kJDfkOZBvxkvOit/rootfs/usr/lib64/systemd/libsystemd-shared-255.7-1.fc40.so

(sorry for the very deep links, results for successful runs are easier to reach).

pcahyna commented at 2024-06-18 14:36:

@jsmeix and thanks for the improvement!

jsmeix commented at 2024-06-19 04:59:

@pcahyna
thank you for your exact review.
Yes "were" is a typo that should be "where".
I will just fix that right now.

I didn't notice it in my above
https://github.com/rear/rear/pull/3250#issuecomment-2168043239
and
https://github.com/rear/rear/pull/3250#issuecomment-2168077072

As a side note for the fun of it:
I read rather fast so my brain doesn't notice typos
as long as it can deduce what is meant.
For me the text with typo

requires libraries were 'ldd' shows 'not found'

appears in my brain exactly same as the text

requires libraries where 'ldd' shows 'not found'

i.e. I directly understand that 'were' as 'where'
without anything that indicates something is wrong.
In contrast my wife reads slower and she notices
almost every typo.
In practice I cannot read slower and when I try
it doesn't help, and my wife cannot read faster.

jsmeix commented at 2024-06-19 05:19:

Fixed directly via
https://github.com/rear/rear/commit/d6b82dff392db9b3fffa16f2ad7d3d53344a361e


[Export of Github issue for rear/rear.]