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?
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