Unnamed repository
Go to file
Tao Liu fc66e25f7b Re-introduce vmcore creation notification to kdump
Upstream: fedora
Resolves: RHEL-70214
Conflict: Yes, the conflict is the same as the original c9s commit
	  c5aa4609 ("Introduce vmcore creation notification to kdump")
	  9ec61f6c ("Return the correct exit code of rebuild initrd")
          Also this patch cherry-picked the ipv6 fixed in [1].

[1]: https://github.com/rhkdump/kdump-utils/pull/60/files

commit 24e76222c740def1d03a506652400fe55959e024
Author: Tao Liu <ltao@redhat.com>
Date:   Fri Nov 29 16:15:18 2024 +1300

    Re-introduce vmcore creation notification to kdump

    Motivation
    ==========

    People may forget to recheck to ensure kdump works, which as a result, a
    possibility of no vmcores generated after a real system crash. It is
    unexpected for kdump.

    It is highly recommended people to test kdump after any system modification,
    such as:

    a. after kernel patching or whole yum update, as it might break something
       on which kdump is dependent, maybe due to introduction of any new bug etc.
    b. after any change at hardware level, maybe storage, networking,
       firmware upgrading etc.
    c. after implementing any new application, like which involves 3rd party modules
       etc.

    Though these exceed the range of kdump, however a simple vmcore creation
    status notification is good to have for now.

    Design
    ======

    Kdump currently will check any relating files/fs/drivers modified before
    determine if initrd should rebuild when (re)start. A rebuild is an
    indicator of such modification, and kdump need to be tested. This will
    clear the vmcore creation status specified in $VMCORE_CREATION_STATUS,
    and as a result, a notification of vmcore creation test will be
    outputted.

    To test kdump, there is an entry for doing that by "kdumpctl test". It
    will generate a timestamp string as the ID of the current test, along
    with a "pending" status in $VMCORE_CREATION_STATUS, then a real crash &
    dump process will be triggered.

    After system reboot back to normal, a vmcore creation check will start at
    "kdumpctl (re)start/status", and will report the results as
    success/fail/manual status to users.

    To achieve that, program will first check the status in $VMCORE_CREATION_STATUS.
    If "pending" status if found, which means the test result is
    undetermined and need a retrive from remote/local dump folder. Then if test
    id is found in the dump folder and vmcore is complete, then "pending"
    would be overwritten by "success", which indicates a successful kdump
    test. If test id is found in the dump folder but vmcore is incomplete,
    then it is a "fail" kdump test. If no test id is found, then it is a "manual"
    status, which indicates users should check the test results manually.

    If $VMCORE_CREATION_STATUS is already success/fail/manual status, it indicates
    the test result has already been determined, so the program will not access
    the remote/local dump folder again. This can limite any unnecessary
    access to dump target, shorten the time consumption.

    User should check for the root cause of fail/manual status when get
    reports.

    $VMCORE_CREATION_STATUS is used for recording the vmcore creation status of
    the current env. The format is like:

       <status> kdump_test_id=<timestamp sec>-<timestamp nanosec>
    e.g:
       success kdump_test_id=1729823462-938751820

    Which means, there has been a successful kdump test at
    $(date -d "@1729823462") timestamp for the current env. Timestamp
    nanosec is only meaningful for uniquify id string.

    Difference
    ==========
    Previously there is one commit 88525ebf ("Introduce vmcore creation
    notification to kdump") merged and addressing the same issue, but
    implemented differently:

    The prev one:
    Save the $VMCORE_CREATION_STATUS to local drive during the 2nd kernel
    dumping. If vmcore dumping target is different from $VMCORE_CREATION_STATUS's
    drive, then the latter one need to be mounted in 2nd kernel.

    This one:
    Save the $VMCORE_CREATION_STATUS to local drive only in 1nd kernel, that
    is, the test result is retrived after 2nd kernel dumping. So it doesn't
    load or mount other drive in 2nd kernel.

    The advantage:
    Extra mounting in 2nd kernel will introduce higher risk of failure,
    as a result, lower the success of vmcore dumping, which is
    unaccepted. So keep the code for 2nd kernel as simple is preferred.

    Usage
    =====
    [root@localhost ~]# kdumpctl restart
    kdump: kexec: unloaded kdump kernel
    kdump: Stopping kdump: [OK]
    kdump: kexec: loaded kdump kernel
    kdump: Starting kdump: [OK]
    kdump: Notice: No vmcore creation test performed!

    [root@localhost ~]# kdumpctl status
    kdump: Kdump is operational
    kdump: Notice: No vmcore creation test performed!

    [root@localhost ~]# kdumpctl test

    [root@localhost ~]# cat /var/lib/kdump/vmcore-creation.status
    pending kdump_test_id=1729823462-938751820

    [root@localhost ~]# kdumpctl status
    kdump: Kdump is operational
    kdump: Notice: Last successful vmcore creation on Fri Oct 25 02:31:02 AM UTC 2024

    [root@localhost ~]# cat /var/lib/kdump/vmcore-creation.status
    success kdump_test_id=1729823462-938751820

    [root@localhost ~]# kdumpctl restart
    kdump: kexec: unloaded kdump kernel
    kdump: Stopping kdump: [OK]
    kdump: kexec: loaded kdump kernel
    kdump: Starting kdump: [OK]
    kdump: Notice: Last successful vmcore creation on Fri Oct 25 02:31:02 AM UTC 2024

    Note: the notification for kdumpctl (re)start/status can be disabled by
    setting VMCORE_CREATION_NOTIFICATION in /etc/sysconfig/kdump. And fadump
    is NOT supported for this feature.

    Signed-off-by: Tao Liu <ltao@redhat.com>

Signed-off-by: Tao Liu <ltao@redhat.com>
2024-12-06 15:27:20 +13:00
tests Merged update from upstream sources 2020-11-20 12:35:49 +00:00
.editorconfig kdump-lib-initramfs.sh: prepare to be a POSIX compatible lib 2021-11-09 21:45:15 +08:00
.gitignore RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
60-fadump.install fadump: add a kernel install hook to clean up fadump initramfs 2022-12-22 14:36:23 +08:00
60-kdump.install Write to /var/lib/kdump if $KDUMP_BOOTDIR not writable 2021-06-23 09:34:40 +08:00
92-crashkernel.install Prefix reset-crashkernel-{for-installed_kernel,after-update} with underscore 2022-10-27 14:47:57 +08:00
98-kexec.rules RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
98-kexec.rules.ppc64 powerpc: update fadump sysfs node path 2023-09-21 15:06:07 +08:00
99-kdump.conf Add kdump dracut config 2024-12-05 11:38:52 +08:00
crashkernel-howto.txt remind the users to run zipl after calling grubby on s390x 2022-09-19 09:10:54 +08:00
dracut-early-kdump-module-setup.sh dracut-early-kdump-module-setup.sh: install xargs and kdump-lib-initramfs.sh 2022-01-06 14:31:33 +08:00
dracut-early-kdump.sh powerpc: update kdumpctl to load kernel signing key for fadump 2023-11-08 01:36:58 +00:00
dracut-fadump-init-fadump.sh fadump-init: clean up mount points properly 2021-07-20 15:43:43 +08:00
dracut-fadump-module-setup.sh fadump: isolate fadump initramfs image within the default one 2021-07-20 15:43:11 +08:00
dracut-kdump-capture.service RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump-emergency.service Merge kdump-error-handler.sh into kdump.sh 2021-11-09 21:45:31 +08:00
dracut-kdump-emergency.target RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
dracut-kdump.sh Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
dracut-module-setup.sh Revert "Introduce vmcore creation notification to kdump" 2024-12-06 11:25:25 +13:00
dracut-monitor_dd_progress RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
early-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
fadump-howto.txt powerpc: update fadump sysfs node path 2023-09-21 15:06:07 +08:00
gating.yaml Add gating.yaml to RHEL-9 kexec-tools 2021-06-08 20:03:41 +08:00
gen-kdump-conf.sh kdump.conf: use a simple generator script to maintain 2022-12-01 11:01:17 +08:00
kdump-dep-generator.sh Merged update from upstream sources 2021-01-22 08:12:00 +00:00
kdump-in-cluster-environment.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
kdump-lib-initramfs.sh Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdump-lib.sh kdump-lib-initramfs: Improve mount point retrieval logic 2024-12-05 10:23:16 +08:00
kdump-logger.sh Add header comment for POSIX compliant scripts 2021-11-10 10:26:54 +08:00
kdump-migrate-action.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-restart.sh kdump/ppc64: rebuild initramfs image after migration 2021-12-03 18:13:09 +08:00
kdump-udev-throttler RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
kdump.conf.5 Explain the auto_reset_crashkernel option in more details 2024-01-02 10:11:33 +00:00
kdump.service kdumpctl: Move temp file in get_kernel_size to global temp dir 2023-05-31 15:10:30 +08:00
kdump.sysconfig Revert "Introduce vmcore creation notification to kdump" 2024-12-06 11:25:25 +13:00
kdump.sysconfig.aarch64 Revert "Introduce vmcore creation notification to kdump" 2024-12-06 11:25:25 +13:00
kdump.sysconfig.i386 Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdump.sysconfig.ppc64 Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdump.sysconfig.ppc64le Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdump.sysconfig.s390x Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdump.sysconfig.x86_64 Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdumpctl Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kdumpctl.8 Re-introduce vmcore creation notification to kdump 2024-12-06 15:27:20 +13:00
kexec_file-add-kexec_file-flag-to-support-debug-prin.patch kexec_file: add kexec_file flag to support debug printing 2024-05-07 20:26:22 +08:00
kexec-kdump-howto.txt kdumpctl: Drop default kexec '-d' option 2024-07-11 11:34:26 +02:00
kexec-tools.spec Add kdump dracut config 2024-12-05 11:38:52 +08:00
kexec-update-manpage-with-explicit-mention-of-clean-.patch kexec: update manpage with explicit mention of clean kexec 2023-10-31 13:21:58 +08:00
live-image-kdump-howto.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
mkdumprd Revert "Introduce vmcore creation notification to kdump" 2024-12-06 11:25:25 +13:00
mkdumprd.8 Merged update from upstream sources 2020-12-23 10:00:07 +00:00
mkfadumprd fadump: use 'zstd' as the default compression method 2022-12-22 14:36:23 +08:00
README RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00
sources Release 2.0.29-1 2024-11-06 16:27:38 +13:00
supported-kdump-targets.txt Add lvm thin provision to kdump supported-kdump-targets.txt 2023-06-02 11:15:37 +08:00
zanata-notes.txt RHEL 9.0.0 Alpha bootstrap 2020-10-15 14:45:57 +02:00

Adding a patch to kexec-tools
=============================
There is a mailing list kexec@lists.fedoraproject.org where all the dicussion
related to fedora kexec-tools happen. All the patches are posted there for
inclusion and committed to kexec-tools after review.

So if you want your patches to be included in fedora kexec-tools package,
post these to kexec@lists.fedoraproject.org.

One can subscribe to list and browse through archives here.

https://admin.fedoraproject.org/mailman/listinfo/kexec