Bug 1541400 - Non-fatal POSTIN scriptlet failure in rpm package foreman-bootloaders-redhat-tftpboot
Summary: Non-fatal POSTIN scriptlet failure in rpm package foreman-bootloaders-redhat-...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Satellite
Classification: Red Hat
Component: TFTP
Version: 6.3.0
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: 6.4.0
Assignee: Lukas Zapletal
QA Contact: Lukas Pramuk
URL: http://projects.theforeman.org/issues...
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-02-02 13:48 UTC by Lukas Pramuk
Modified: 2019-11-05 23:12 UTC (History)
2 users (show)

Fixed In Version: foreman-bootloaders-redhat-201801241201-2
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-10-16 18:57:48 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Foreman Issue Tracker 22499 0 Normal Closed Non-fatal POSTIN scriptlet failure in rpm package foreman-bootloaders-redhat 2020-11-02 00:37:18 UTC

Description Lukas Pramuk 2018-02-02 13:48:13 UTC
Description of problem:
Non-fatal POSTIN scriptlet failure in rpm package foreman-bootloaders-redhat-tftpboot

There is semantic error in /usr/bin/foreman-generate-bootloaders in check_pkg() function (Line 20):

check_pkg() {
  rpm -q "$1" &>/dev/null || echo "Please install: yum -y install $1" && exit 1
}

cmd1 || cmd2 && cmd3 

So, if cmd1 succeeds then cmd2 is skipped (OK) but cmd3 is still performed (BUG)
It should be like this: 

cmd1 || ( cmd2 && cmd3 ) 


Version-Release number of selected component (if applicable):
satellite-6.3.0-23.0.el7sat.noarch (Snap 34)
foreman-bootloaders-redhat-201801241201-1.el7sat.noarch

How reproducible:
always


Steps to Reproduce:
1. # yum upgrade
...
warning: %post(foreman-bootloaders-redhat-tftpboot-201801241201-1.el7sat.noarch) scriptlet failed, exit status 1
Non-fatal POSTIN scriptlet failure in rpm package foreman-bootloaders-redhat-tftpboot-201801241201-1.el7sat.noarch

2. # rpm -q --scripts foreman-bootloaders-redhat-tftpboot
postinstall scriptlet (using /bin/sh):
/usr/bin/foreman-generate-bootloaders x86_64 noinstall

3.
# /usr/bin/foreman-generate-bootloaders x86_64 noinstall
# echo $?
1

Actual results:
rpm scriptlet exits with 1 though there is no error at all

Expected results:
rpm scriptlet exits with 0 as there is no error at all

Comment 2 Lukas Pramuk 2018-05-22 14:42:59 UTC
VERIFIED.

@satellite-6.4.0-7.beta.el7sat.noarch
foreman-bootloaders-redhat-tftpboot-201801241201-3.el7sat.noarch

# rpm -q --scripts foreman-bootloaders-redhat-tftpboot
postinstall scriptlet (using /bin/sh):
/usr/bin/foreman-generate-bootloaders x86_64 noinstall

# /usr/bin/foreman-generate-bootloaders x86_64 noinstall

# echo $?
0

>>> foreman-bootloaders-redhat-tftpboot postinstall scriptlet causes no error 

---
check_pkg() {
  rpm -q "$1" &>/dev/null || ( echo "Please install: yum -y install $1" >/dev/stderr && exit 1 )
}
---
^ correct semantics

Comment 3 Bryan Kearney 2018-10-16 18:57:48 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, 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/RHSA-2018:2927


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