On 05/29/2013 04:00 AM, Dave Young wrote: > On 05/28/2013 06:53 PM, Harald Hoyer wrote: >> On 05/16/2013 07:15 AM, dyoung@xxxxxxxxxx wrote: >>> >>> Kdump test failed since below commits >>> dbfaae0e34507d2d1f3c186ffe26af3e8028b9f8 >>> >>> Fedora bug is here: >>> https://bugzilla.redhat.com/show_bug.cgi?id=963159 >>> >>> The reason is the hooks afterwards need NEWROOT env which >>> is set in dracut-cmdline.sh. >>> >>> In this case there's no files under /etc/cmdline.d/ and >>> /lib/dracut/hooks/cmdline/. Conditions checking failed, so >>> the cmdline service failed to startup. >>> >>> Fix this issue by remove the Conditions thus cmdline service >>> always run if /etc/initrd-release exists. >>> >>> Signed-off-by: Dave Young <dyoung@xxxxxxxxxx> >>> --- >>> modules.d/98systemd/dracut-cmdline.service | 5 ----- >>> 1 file changed, 5 deletions(-) >>> >>> --- dracut.orig/modules.d/98systemd/dracut-cmdline.service >>> +++ dracut/modules.d/98systemd/dracut-cmdline.service >>> @@ -16,11 +16,6 @@ Before=systemd-vconsole-setup.service >>> After=systemd-journald.socket >>> Wants=systemd-journald.socket >>> ConditionPathExists=/etc/initrd-release >>> -ConditionPathExistsGlob=|/etc/cmdline.d/*.conf >>> -ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cmdline >>> -ConditionKernelCommandLine=|rd.break=cmdline >>> -ConditionKernelCommandLine=|resume >>> -ConditionKernelCommandLine=|noresume >>> >>> [Service] >>> Type=oneshot >> >> Will be fixed by setting >> >> Environment=DRACUT_SYSTEMD=1 >> Environment=NEWROOT=/sysroot >> >> in the service files. >> > Hi, Harald > > Thanks for your fix, but I'm still worrying about below code: > -ConditionPathExistsGlob=|/etc/cmdline.d/*.conf > -ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cmdline > > Is the above Conditions 'or' or 'and' relations? > will it just skip cmdline service in case any of the conditions do es not match? It is OR and it will start dracut-cmdline.service if any of the |= conditions is matched. > > If above is true then I'm still worrying about we will cause more problems. grep "inst_hook cmdline" shows a lot of stuff which is not limited to parsing /etc/cmdline.d/*.conf, such as: > 04watchdog/module-setup.sh: inst_hook cmdline 50 "$moddir/watchdog.sh" > 40network/module-setup.sh: inst_hook cmdline 91 "$moddir/dhcp-root.sh" > 96securityfs/module-setup.sh: inst_hook cmdline 60 "$moddir/securityfs.sh" > > Even for hooks parsing cmdline, the cmdline params are not limited to /etc/cmdline.d/*.conf, they can also be specified in grub cmdline, isn't it? > If anything is installed in the cmdline hook via "inst_hook cmdline" the dracut-cmdline.service will be started because of ConditionDirectoryNotEmpty=|/lib/dracut/hooks/cmdline -- To unsubscribe from this list: send the line "unsubscribe initramfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html