Bug 1167082

Summary: Logging broken when dinfo exists in PATH
Product: Red Hat Enterprise Linux 7 Reporter: Petr Vokac <vokac>
Component: dracutAssignee: Harald Hoyer <harald>
Status: CLOSED ERRATA QA Contact: Release Test Team <release-test-team-automation>
Severity: low Docs Contact:
Priority: unspecified    
Version: 7.0CC: dracut-maint-list, harald, mhruscak
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 12:51:36 UTC 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:

Description Petr Vokac 2014-11-23 12:17:16 UTC
Description of problem:

Logging function stored in dracut-logger.sh are included by dracut-functions only if "type dinfo" fails. Unfortunately this test is also satisfied when "dinfo" file exists in PATH and in such situation dracut fails to run.

Version-Release number of selected component (if applicable):

dracut-033-161.el7_0.173.x86_64

Steps to Reproduce:
1. touch /usr/bin/dinfo
2. yum remove -y kernel-3.10.0-123.9.3.el7.x86_64
3. yum upgrade -y

Actual results:

...
Running transaction
  Installing : kernel-3.10.0-123.9.3.el7.x86_64                                                                                                                                                                                                                            1/1 
/sbin/dracut: line 834: /usr/bin/dinfo: Permission denied
/sbin/dracut: line 1167: /usr/bin/dinfo: Permission denied
/sbin/dracut: line 1167: /usr/bin/dinfo: Permission denied
/sbin/dracut: line 1167: /usr/bin/dinfo: Permission denied
/usr/lib/dracut/dracut-functions.sh: line 1645: derror: command not found
/usr/lib/dracut/dracut-functions.sh: line 1645: derror: command not found
/usr/lib/dracut/dracut-functions.sh: line 1645: derror: command not found
/usr/lib/dracut/dracut-functions.sh: line 1645: derror: command not found
/usr/lib/dracut/dracut-functions.sh: line 1645: derror: command not found
/sbin/dracut: line 1178: dfatal: command not found
mkinitrd failed
...

Additional info:

There is a function in dracut-functions called "is_func" that could be used to safely check existence of the dinfo function.

Comment 2 Harald Hoyer 2014-11-24 14:22:02 UTC
Thanks!

Of course, the best fix would be to rename the function to dracut_info()

http://git.kernel.org/cgit/boot/dracut/dracut.git/commit/?id=26d14fb3d36d6091f64258a62c49939478405693

Comment 7 errata-xmlrpc 2015-11-19 12:51:36 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://rhn.redhat.com/errata/RHBA-2015-2091.html