On Wed, Apr 21, 2021 at 05:50:38PM +0800, Coiby Xu wrote:
On Thu, Apr 08, 2021 at 12:18:57PM +0800, Kairui Song wrote:
>This reverts commit 7f1f8f229f546818a891400ac7961e485dcd6f3c again.
>Previous, kdump's dump_to_rootfs tried to detect if initqueue is
>running and don't start it if it's already running or failed.
>
>But dump_to_rootfs will run after systemd isolate to emergency
>target, so previous service status are lost, and the detect
>is invalid always return false.
>
>But now we can remove the isolate wrapper in following commitsa,
>this detection will be valid and helpful again.
>
>Signed-off-by: Kairui Song <kasong(a)redhat.com>
>---
>kdump-lib-initramfs.sh | 7 +++++--
>1 file changed, 5 insertions(+), 2 deletions(-)
>
>diff --git a/kdump-lib-initramfs.sh b/kdump-lib-initramfs.sh
>index 5cb0223..eb4b07e 100755
>--- a/kdump-lib-initramfs.sh
>+++ b/kdump-lib-initramfs.sh
>@@ -218,8 +218,11 @@ save_opalcore_fs() {
>dump_to_rootfs()
>{
>
>- dinfo "Trying to bring up rootfs device"
>- systemctl start dracut-initqueue
>+ if ! ( systemctl is-active dracut-initqueue || systemctl is-failed
dracut-initqueue ) &> /dev/null; then
^^
I think you meant to use "&&" for "||", right?
Oh, I made a mistake. "||" is correct here. But the following
description is still valid.
But even with this fix, dracut-initque could be inactive but not in a
failed state. Based on you suggestion you gave me in IRC chat, I added
the following code to the beginning of the install function of
dracut-module-setup.sh,
hookdir="$initdir/usr/lib/dracut/hooks/"
printf -- '[ -e /non-exists ]\n' >>
"$hookdir/initqueue/finished/99-fail.sh"
I thought the above code would make "systemctl is-failed dracut-initqueue"
return
true. But it turned out otherwise.
Btw, with the above tweak, dracut-initqueue would timeout the first
time. But trying to restart initqueue would lead the system to hang
forever and I didn't notice any timeout message from initqueue. So the
following
commit message of "[PATCH v3 2/3] Remove the kdump error handler
isolation wrapper" is not accurate,
>"When dracut called emergency service because initqueue
>timed out, dump_to_rootfs will try start initqueue again and timeout
>again."
>+ dinfo "Trying to bring up initqueue for rootfs mount"
>+ systemctl start dracut-initqueue
>+ fi
>+
> dinfo "Waiting for rootfs mount, will timeout after 90 seconds"
> systemctl start sysroot.mount
>
>--
>2.30.2
>_______________________________________________
>kexec mailing list -- kexec(a)lists.fedoraproject.org
>To unsubscribe send an email to kexec-leave(a)lists.fedoraproject.org
>Fedora Code of Conduct:
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
>List Guidelines:
https://fedoraproject.org/wiki/Mailing_list_guidelines
>List Archives:
https://lists.fedoraproject.org/archives/list/kexec@lists.fedoraproject.org
>Do not reply to spam on the list, report it:
https://pagure.io/fedora-infrastructure
--
Best regards,
Coiby
--
Best regards,
Coiby