Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Let's require answer `check_vdo.confirm`. Then..
If user provides an answer for `check_vdo.invalid_answer` and if the answerfile is
a) missing
b) or just does not containt the section `check_vdo`
c) or the section `check_vdo` exists but contains anser `whatever = False` instead of confirm,
then leapp does not recognize the required answer for the particular section is missing
1. if answer is answered using `leapp answer --add ...` in cases a,b
2. just like that in case c)
Reproducer:
-----------
# dnf install -y leapp-upgrade lvm2
# dnf remove -y vdo
# rm -rf /var/log/leapp/answerfile*
# leapp answer --section check_vdo.whatever=True --add
# leapp preupgrade
Current results:
----------------
~~~
[snip]
====> * verify_check_results
Check all generated results messages and notify user about them.
Debug output written to /var/log/leapp/leapp-preupgrade.log
============================================================
REPORT
============================================================
A report has been generated at /var/log/leapp/leapp-report.json
A report has been generated at /var/log/leapp/leapp-report.txt
============================================================
END OF REPORT
============================================================
Answerfile has been generated at /var/log/leapp/answerfile
~~~
In the output is clearly seen that the expected inhibitor about the missing answered question is missing.
Expected result:
----------------
The upgrade is always inhibited with the proper reason when the required answer is not provided.
~~~
============================================================
UPGRADE INHIBITED
============================================================
Upgrade has been inhibited due to the following problems:
1. Inhibitor: Missing required answers in the answer file
Consult the pre-upgrade report for details and possible remediation.
============================================================
UPGRADE INHIBITED
============================================================
~~~
From the report file:
~~~
Risk Factor: high (inhibitor)
Title: Missing required answers in the answer file
Summary: One or more sections in answerfile are missing user choices: check_vdo.confirm
For more information consult https://leapp.readthedocs.io/en/latest/dialogs.html
Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile.
[command] leapp answer --section check_vdo.confirm=True
Key: 2f9802dc91315806c7cdc3c18d7b74f2a2383285
----------------------------------------
~~~
Additional note:
Based on how particular actor is written, the upgrade could be performed without any inhibitor, like in the first example above, despite the fact that required answer has not been delivered. With the new leapp-repository build, the upgrade will be inhibit, but because of little bit different reason and user will not be necessarily prompted to answer the question, so customers will not be aware they didn't provide the right answer. Also, running leapp multiple times, user could see later the proper inhibitor, but it could be pretty annoying to have basically several different outcomes when running leapp.
FYI, with the next planned leapp-repository build, the upgrade will be inhibited by a different report. However, user will not be prompted to answer the new question so there is additional bad UX.
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 (leapp 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-2022:7591
Let's require answer `check_vdo.confirm`. Then.. If user provides an answer for `check_vdo.invalid_answer` and if the answerfile is a) missing b) or just does not containt the section `check_vdo` c) or the section `check_vdo` exists but contains anser `whatever = False` instead of confirm, then leapp does not recognize the required answer for the particular section is missing 1. if answer is answered using `leapp answer --add ...` in cases a,b 2. just like that in case c) Reproducer: ----------- # dnf install -y leapp-upgrade lvm2 # dnf remove -y vdo # rm -rf /var/log/leapp/answerfile* # leapp answer --section check_vdo.whatever=True --add # leapp preupgrade Current results: ---------------- ~~~ [snip] ====> * verify_check_results Check all generated results messages and notify user about them. Debug output written to /var/log/leapp/leapp-preupgrade.log ============================================================ REPORT ============================================================ A report has been generated at /var/log/leapp/leapp-report.json A report has been generated at /var/log/leapp/leapp-report.txt ============================================================ END OF REPORT ============================================================ Answerfile has been generated at /var/log/leapp/answerfile ~~~ In the output is clearly seen that the expected inhibitor about the missing answered question is missing. Expected result: ---------------- The upgrade is always inhibited with the proper reason when the required answer is not provided. ~~~ ============================================================ UPGRADE INHIBITED ============================================================ Upgrade has been inhibited due to the following problems: 1. Inhibitor: Missing required answers in the answer file Consult the pre-upgrade report for details and possible remediation. ============================================================ UPGRADE INHIBITED ============================================================ ~~~ From the report file: ~~~ Risk Factor: high (inhibitor) Title: Missing required answers in the answer file Summary: One or more sections in answerfile are missing user choices: check_vdo.confirm For more information consult https://leapp.readthedocs.io/en/latest/dialogs.html Remediation: [hint] Please register user choices with leapp answer cli command or by manually editing the answerfile. [command] leapp answer --section check_vdo.confirm=True Key: 2f9802dc91315806c7cdc3c18d7b74f2a2383285 ---------------------------------------- ~~~ Additional note: Based on how particular actor is written, the upgrade could be performed without any inhibitor, like in the first example above, despite the fact that required answer has not been delivered. With the new leapp-repository build, the upgrade will be inhibit, but because of little bit different reason and user will not be necessarily prompted to answer the question, so customers will not be aware they didn't provide the right answer. Also, running leapp multiple times, user could see later the proper inhibitor, but it could be pretty annoying to have basically several different outcomes when running leapp.