Bug 1306640 - Some values for root= in the cmdline cause "Cannot add dependency" errors during boot
Some values for root= in the cmdline cause "Cannot add dependency" errors dur...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: dracut (Show other bugs)
7.3
Unspecified Unspecified
high Severity high
: rc
: ---
Assigned To: Lukáš Nykrýn
Release Test Team
:
Depends On:
Blocks: ovirt-node-ng-43-platform ovirt-node-ng ovirt-node-ng-platform
  Show dependency treegraph
 
Reported: 2016-02-11 09:01 EST by Fabian Deutsch
Modified: 2018-04-10 14:10 EDT (History)
13 users (show)

See Also:
Fixed In Version: dracut-033-534.el7
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-04-10 14:07:53 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:0964 None None None 2018-04-10 14:10 EDT

  None (edit)
Description Fabian Deutsch 2016-02-11 09:01:32 EST
Description of problem:
The following kernel commandline:

Kernel command line: BOOT_IMAGE=/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1/vmlinuz-3.10.0-327.4.5.el7.x86_64 root=/dev/onn/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1 ro crashkernel=auto rd.lvm.lv=onn/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1 rd.lvm.lv=onn/swap rhgb quiet LANG=en_US.UTF-8 img.bootid=ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1 

Causes the following error message:
Feb 11 14:47:46 localhost systemd[1]: Cannot add dependency dev-onn-ovirt\x2dnode\x2dng\x2d4.0.0\x2d0.0.master.20160211.0.el7+1.device to initrd.target, ignoring: Invalid argument

By swithcing to the following root= argument the error goes away:
root=UUID=2c1392eb-4132-4b2f-b5f1-2dc49564278c

Version-Release number of selected component (if applicable):
RHEl 7.2
# rpm -q systemd kernel dracut
systemd-219-19.el7.x86_64
kernel-3.10.0-327.4.5.el7.x86_64
dracut-033-360.el7_2.x86_64


How reproducible:
Always

Steps to Reproduce:
1.
2.
3.

Actual results:


Expected results:


Additional info:
Comment 1 Lukáš Nykrýn 2016-02-11 10:07:19 EST
If you still have a reproducer, could you add rd.break to command line and post here content of /etc/systemd/system/initrd.target.wants?
Comment 2 Fabian Deutsch 2016-02-11 10:16:09 EST
It only has dev-centos_installed-swap.device
Comment 3 Fabian Deutsch 2016-02-22 02:18:01 EST
Anything else I can help with?
Comment 5 Fabian Deutsch 2016-02-23 09:11:48 EST
I installed the scratch build and tried the following:

1. Installed the new build
2. Reboot
3. dracut -f …
4. Reboot

After 2: Error msg is still shown
After 4: Error msg is still shown.

I can not observer any change in behavior
Comment 6 Harald Hoyer 2016-03-08 10:29:06 EST
might be a dracut bug creating the device unit name.
Comment 8 Fabian Deutsch 2016-05-17 07:08:51 EDT
Ping?
Comment 9 Harald Hoyer 2016-07-22 06:04:48 EDT
please also search in /run and /usr

# grep -R . /{run,etc,usr/lib}/systemd/system/initrd.target.wants/*.device
Comment 10 Fabian Deutsch 2016-07-22 08:01:38 EDT
# grep -R . /{run,etc,usr/lib}/systemd/system/initrd.target.want 
grep: /run/systemd/system/initrd.target.wants/*.device: No such file or directory
grep: /etc/systemd/system/initrd.target.wants/*.device: No such file or directory
grep: /usr/lib/systemd/system/initrd.target.wants/*.device: No such file or directory

# find /{run,etc,usr/lib}/systemd/system/ | grep initrd
/usr/lib/systemd/system/initrd-switch-root.target.wants
/usr/lib/systemd/system/initrd-switch-root.target.wants/plymouth-start.service
/usr/lib/systemd/system/initrd-switch-root.target.wants/plymouth-switch-root.service
/usr/lib/systemd/system/initrd.target.wants
/usr/lib/systemd/system/initrd.target.wants/dracut-cmdline.service
/usr/lib/systemd/system/initrd.target.wants/dracut-initqueue.service
/usr/lib/systemd/system/initrd.target.wants/dracut-mount.service
/usr/lib/systemd/system/initrd.target.wants/dracut-pre-mount.service
/usr/lib/systemd/system/initrd.target.wants/dracut-pre-pivot.service
/usr/lib/systemd/system/initrd.target.wants/dracut-pre-trigger.service
/usr/lib/systemd/system/initrd.target.wants/dracut-pre-udev.service
/usr/lib/systemd/system/initrd.target
/usr/lib/systemd/system/initrd-cleanup.service
/usr/lib/systemd/system/initrd-fs.target
/usr/lib/systemd/system/initrd-parse-etc.service
/usr/lib/systemd/system/initrd-root-fs.target
/usr/lib/systemd/system/initrd-switch-root.service
/usr/lib/systemd/system/initrd-switch-root.target
/usr/lib/systemd/system/initrd-udevadm-cleanup-db.service
Comment 11 Fabian Deutsch 2016-07-22 08:04:17 EDT
# journalctl -b | egrep "Cannot|witch Ro"
Jul 22 13:45:09 localhost systemd[1]: Cannot add dependency dev-r4b_slot\x2d6c-rhvh\x2d4.0\x2d0.20160714.3+1.device to initrd.target, ignoring: Invalid argument
Jul 22 13:45:09 localhost systemd[1]: Cannot add dependency job for unit multipathd.service, ignoring: Unit blk-availability.service failed to load: No such file or directory.
Jul 22 13:45:11 localhost systemd[1]: Reached target Switch Root.
Jul 22 13:45:11 localhost systemd[1]: Starting Switch Root.
Jul 22 13:45:11 localhost systemd[1]: Starting Switch Root...

To give an idea where/when it is happening
Comment 12 Fabian Deutsch 2016-08-31 04:42:08 EDT
We are still seeing this, in production now - any news?
Comment 13 Sandro Bonazzola 2017-06-07 03:53:04 EDT
Still around in 7.3
Comment 15 Lukáš Nykrýn 2017-06-08 06:46:53 EDT
I am really sory for late answer. I have backported couple of patch that should improve how dracut mangle device names
Comment 17 Lukáš Nykrýn 2017-06-08 06:48:03 EDT
https://github.com/lnykryn/dracut/commits/bz1306640
Comment 20 Lukáš Nykrýn 2018-01-05 03:54:05 EST
devel-ack for merging patches from https://github.com/lnykryn/dracut/commits/bz1306640
Comment 21 Jan Stodola 2018-01-05 04:04:29 EST
Lukas,
what patches exactly would be merged?
Comment 23 Jan Stodola 2018-01-10 06:54:45 EST
Hi Fabian,
I'm not able to reproduce this problem, tested on RHEL-7.2 and RHEL-7.4, system booted correctly in both cases. The kernel command line was:

[root@localhost ~]# dmesg | grep "Kernel command line"
[    0.000000] Kernel command line: BOOT_IMAGE=/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1/vmlinuz-3.10.0-327.el7.x86_64 root=/dev/rhel/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1 ro crashkernel=auto rd.lvm.lv=rhel/ovirt-node-ng-4.0.0-0.0.master.20160211.0.el7+1 rd.lvm.lv=rhel/swap console=ttyS0 LANG=en_US.UTF-8
[root@localhost ~]#

Would you help with verification of this bug once there is a fix, please?
Comment 24 Fabian Deutsch 2018-01-13 14:51:03 EST
Let me redirect this to Ryan - as this was seen on RHVH
Comment 25 Ryan Barry 2018-01-29 07:13:49 EST
This is definitely still reproducible, and it looks like a UTF8 encoding bug, Jan.

[    0.964269] systemd[1]: Cannot add dependency dev-rhvh-rhvh\x2d4.2.1.2\x2d0.20180126.0+1.device to initrd.target, ignoring: Invalid argument

The actual LV is rhvh-4.2.1.2-0.20180126.0+1. The hyphens in the LV name should be `-`, not \x2d
Comment 34 errata-xmlrpc 2018-04-10 14:07:53 EDT
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/RHBA-2018:0964

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