Revert "Introduce vmcore creation notification to kdump"
Resolves: RHEL-70214 Upstream: fedora Conflict: Yes, the conflict is the same as the original c9s commitc5aa4609
("Introduce vmcore creation notification to kdump")9ec61f6c
("Return the correct exit code of rebuild initrd") commit 96956928a66d9256cdf8bfed6a8963ddea35aac9 Author: Tao Liu <ltao@redhat.com> Date: Fri Nov 29 14:42:01 2024 +1300 Revert "Introduce vmcore creation notification to kdump" This patch will revert the following 2 patches: 88525ebf ("Introduce vmcore creation notification to kdump") 35449537 ("Return the correct exit code of rebuild initrd") For the preparation of reimplementation of vmcore creation notification. Signed-off-by: Tao Liu <ltao@redhat.com> Signed-off-by: Tao Liu <ltao@redhat.com>
This commit is contained in:
parent
315f200ee7
commit
79aec45f8c
@ -306,22 +306,11 @@ do_final_action()
|
|||||||
|
|
||||||
do_dump()
|
do_dump()
|
||||||
{
|
{
|
||||||
if [ -d /vmcorestatus ]; then
|
eval $DUMP_INSTRUCTION
|
||||||
_vmcore_creation_status="/vmcorestatus/$VMCORE_CREATION_STATUS"
|
|
||||||
else
|
|
||||||
_vmcore_creation_status="/sysroot/$VMCORE_CREATION_STATUS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
set_vmcore_creation_status 'clear' "$_vmcore_creation_status"
|
|
||||||
|
|
||||||
eval "$DUMP_INSTRUCTION"
|
|
||||||
_ret=$?
|
_ret=$?
|
||||||
|
|
||||||
if [ $_ret -ne 0 ]; then
|
if [ $_ret -ne 0 ]; then
|
||||||
set_vmcore_creation_status 'fail' "$_vmcore_creation_status"
|
|
||||||
derror "saving vmcore failed"
|
derror "saving vmcore failed"
|
||||||
else
|
|
||||||
set_vmcore_creation_status 'success' "$_vmcore_creation_status"
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
return $_ret
|
return $_ret
|
||||||
|
@ -1144,7 +1144,6 @@ install() {
|
|||||||
inst "/usr/bin/printf" "/sbin/printf"
|
inst "/usr/bin/printf" "/sbin/printf"
|
||||||
inst "/usr/bin/logger" "/sbin/logger"
|
inst "/usr/bin/logger" "/sbin/logger"
|
||||||
inst "/usr/bin/chmod" "/sbin/chmod"
|
inst "/usr/bin/chmod" "/sbin/chmod"
|
||||||
inst "/usr/bin/dirname" "/sbin/dirname"
|
|
||||||
inst "/lib/kdump/kdump-lib-initramfs.sh" "/lib/kdump-lib-initramfs.sh"
|
inst "/lib/kdump/kdump-lib-initramfs.sh" "/lib/kdump-lib-initramfs.sh"
|
||||||
inst "/lib/kdump/kdump-logger.sh" "/lib/kdump-logger.sh"
|
inst "/lib/kdump/kdump-logger.sh" "/lib/kdump-logger.sh"
|
||||||
inst "$moddir/kdump.sh" "/usr/bin/kdump.sh"
|
inst "$moddir/kdump.sh" "/usr/bin/kdump.sh"
|
||||||
|
@ -8,7 +8,6 @@ KDUMP_CONFIG_FILE="/etc/kdump.conf"
|
|||||||
FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump"
|
FENCE_KDUMP_CONFIG_FILE="/etc/sysconfig/fence_kdump"
|
||||||
FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send"
|
FENCE_KDUMP_SEND="/usr/libexec/fence_kdump_send"
|
||||||
LVM_CONF="/etc/lvm/lvm.conf"
|
LVM_CONF="/etc/lvm/lvm.conf"
|
||||||
VMCORE_CREATION_STATUS="/var/crash/vmcore-creation.status"
|
|
||||||
|
|
||||||
# Read kdump config in well formated style
|
# Read kdump config in well formated style
|
||||||
kdump_read_conf()
|
kdump_read_conf()
|
||||||
@ -182,35 +181,3 @@ kdump_get_ip_route_field()
|
|||||||
{
|
{
|
||||||
echo "$1" | sed -n -e "s/^.*\<$2\>\s\+\(\S\+\).*$/\1/p"
|
echo "$1" | sed -n -e "s/^.*\<$2\>\s\+\(\S\+\).*$/\1/p"
|
||||||
}
|
}
|
||||||
|
|
||||||
# $1: success/fail/clear
|
|
||||||
# $2: status_file
|
|
||||||
set_vmcore_creation_status()
|
|
||||||
{
|
|
||||||
_status=$1
|
|
||||||
_status_file=$2
|
|
||||||
_dir=$(dirname "$_status_file")
|
|
||||||
|
|
||||||
[[ -d "$_dir" ]] || mkdir -p "$_dir"
|
|
||||||
|
|
||||||
_mnt_op=$(get_mount_info OPTIONS target "$_dir" -f)
|
|
||||||
case $_mnt_op in
|
|
||||||
ro*)
|
|
||||||
dinfo "remounting the vmcore status target in rw mode."
|
|
||||||
mount -o remount,rw "$(findmnt -n -o TARGET --target $_dir)"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
|
|
||||||
case "$_status" in
|
|
||||||
success | fail)
|
|
||||||
dinfo "saving vmcore status file to $_status_file"
|
|
||||||
echo "$_status $(date +%s)" > "$_status_file"
|
|
||||||
;;
|
|
||||||
clear)
|
|
||||||
rm -f "$_status_file"
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
return
|
|
||||||
esac
|
|
||||||
sync -f "$_dir"
|
|
||||||
}
|
|
||||||
|
@ -36,10 +36,6 @@ KEXEC_ARGS=""
|
|||||||
#What is the image type used for kdump
|
#What is the image type used for kdump
|
||||||
KDUMP_IMG="vmlinuz"
|
KDUMP_IMG="vmlinuz"
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
||||||
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
||||||
|
@ -36,10 +36,6 @@ KEXEC_ARGS="-s"
|
|||||||
#What is the image type used for kdump
|
#What is the image type used for kdump
|
||||||
KDUMP_IMG="vmlinuz"
|
KDUMP_IMG="vmlinuz"
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
||||||
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
||||||
|
@ -39,10 +39,6 @@ KDUMP_IMG="vmlinuz"
|
|||||||
#What is the images extension. Relocatable kernels don't have one
|
#What is the images extension. Relocatable kernels don't have one
|
||||||
KDUMP_IMG_EXT=""
|
KDUMP_IMG_EXT=""
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
||||||
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
||||||
|
@ -39,10 +39,6 @@ KDUMP_IMG="vmlinuz"
|
|||||||
#What is the images extension. Relocatable kernels don't have one
|
#What is the images extension. Relocatable kernels don't have one
|
||||||
KDUMP_IMG_EXT=""
|
KDUMP_IMG_EXT=""
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
#Specify the action after failure
|
#Specify the action after failure
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
|
@ -39,10 +39,6 @@ KDUMP_IMG="vmlinuz"
|
|||||||
#What is the images extension. Relocatable kernels don't have one
|
#What is the images extension. Relocatable kernels don't have one
|
||||||
KDUMP_IMG_EXT=""
|
KDUMP_IMG_EXT=""
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
#Specify the action after failure
|
#Specify the action after failure
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
|
@ -42,10 +42,6 @@ KDUMP_IMG="vmlinuz"
|
|||||||
#What is the images extension. Relocatable kernels don't have one
|
#What is the images extension. Relocatable kernels don't have one
|
||||||
KDUMP_IMG_EXT=""
|
KDUMP_IMG_EXT=""
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
||||||
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
||||||
|
@ -39,10 +39,6 @@ KDUMP_IMG="vmlinuz"
|
|||||||
#What is the images extension. Relocatable kernels don't have one
|
#What is the images extension. Relocatable kernels don't have one
|
||||||
KDUMP_IMG_EXT=""
|
KDUMP_IMG_EXT=""
|
||||||
|
|
||||||
# Enable vmcore creation notification by default, disable by setting
|
|
||||||
# VMCORE_CREATION_NOTIFICATION=""
|
|
||||||
VMCORE_CREATION_NOTIFICATION="yes"
|
|
||||||
|
|
||||||
# Logging is controlled by following variables in the first kernel:
|
# Logging is controlled by following variables in the first kernel:
|
||||||
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
# - @var KDUMP_STDLOGLVL - logging level to standard error (console output)
|
||||||
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
# - @var KDUMP_SYSLOGLVL - logging level to syslog (by logger command)
|
||||||
|
70
kdumpctl
70
kdumpctl
@ -142,7 +142,6 @@ rebuild_kdump_initrd()
|
|||||||
|
|
||||||
rebuild_initrd()
|
rebuild_initrd()
|
||||||
{
|
{
|
||||||
local _ret
|
|
||||||
if [[ ! -w $(dirname "$TARGET_INITRD") ]]; then
|
if [[ ! -w $(dirname "$TARGET_INITRD") ]]; then
|
||||||
derror "$(dirname "$TARGET_INITRD") does not have write permission. Cannot rebuild $TARGET_INITRD"
|
derror "$(dirname "$TARGET_INITRD") does not have write permission. Cannot rebuild $TARGET_INITRD"
|
||||||
return 1
|
return 1
|
||||||
@ -153,10 +152,6 @@ rebuild_initrd()
|
|||||||
else
|
else
|
||||||
rebuild_kdump_initrd
|
rebuild_kdump_initrd
|
||||||
fi
|
fi
|
||||||
_ret=$?
|
|
||||||
|
|
||||||
set_vmcore_creation_status 'clear' "$VMCORE_CREATION_STATUS"
|
|
||||||
return $_ret
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#$1: the files to be checked with IFS=' '
|
#$1: the files to be checked with IFS=' '
|
||||||
@ -1060,8 +1055,6 @@ start()
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
dinfo "Starting kdump: [OK]"
|
dinfo "Starting kdump: [OK]"
|
||||||
check_vmcore_creation_status
|
|
||||||
return 0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
reload()
|
reload()
|
||||||
@ -1763,62 +1756,6 @@ if [[ ! -f $KDUMP_CONFIG_FILE ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
check_vmcore_creation_status()
|
|
||||||
{
|
|
||||||
local _status _timestamp _status_date
|
|
||||||
|
|
||||||
[[ ${VMCORE_CREATION_NOTIFICATION,,} == "yes" ]] || return
|
|
||||||
|
|
||||||
if [[ ! -s $VMCORE_CREATION_STATUS ]]; then
|
|
||||||
dwarn "Notice: No vmcore creation test performed!"
|
|
||||||
return
|
|
||||||
fi
|
|
||||||
|
|
||||||
read -r _status _timestamp < "$VMCORE_CREATION_STATUS"
|
|
||||||
_status_date="$(date -d "@$_timestamp")"
|
|
||||||
if [[ "$_status" == "success" ]]; then
|
|
||||||
dinfo "Notice: Last successful vmcore creation on $_status_date"
|
|
||||||
else
|
|
||||||
dwarn "Notice: Last NOT successful vmcore creation on $_status_date"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
kdump_test()
|
|
||||||
{
|
|
||||||
local _dir
|
|
||||||
|
|
||||||
if ! is_kernel_loaded "$DEFAULT_DUMP_MODE"; then
|
|
||||||
derror "Kdump needs be operational before test."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
_dir=$(dirname "$VMCORE_CREATION_STATUS")
|
|
||||||
if ! [[ -d "$_dir" ]]; then
|
|
||||||
derror "Vmcore status dir $_dir not exist."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! lsblk $(get_mount_info SOURCE target "$_dir") > /dev/null; then
|
|
||||||
derror "$VMCORE_CREATION_STATUS must on local drive"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ! "$1" == "--force" ]]; then
|
|
||||||
read -p "DANGER!!! Will perform a kdump test by crashing the system, proceed? (y/N): " input
|
|
||||||
case $input in
|
|
||||||
[Yy] )
|
|
||||||
dinfo "Start kdump test..."
|
|
||||||
;;
|
|
||||||
* )
|
|
||||||
dinfo "Operation cancelled."
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
set_vmcore_creation_status 'clear' "$VMCORE_CREATION_STATUS"
|
|
||||||
echo c > /proc/sysrq-trigger
|
|
||||||
}
|
|
||||||
|
|
||||||
main()
|
main()
|
||||||
{
|
{
|
||||||
# Determine if the dump mode is kdump or fadump
|
# Determine if the dump mode is kdump or fadump
|
||||||
@ -1849,7 +1786,6 @@ main()
|
|||||||
EXIT_CODE=3
|
EXIT_CODE=3
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
check_vmcore_creation_status
|
|
||||||
exit $EXIT_CODE
|
exit $EXIT_CODE
|
||||||
;;
|
;;
|
||||||
reload)
|
reload)
|
||||||
@ -1890,12 +1826,8 @@ main()
|
|||||||
reset_crashkernel_for_installed_kernel "$2"
|
reset_crashkernel_for_installed_kernel "$2"
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
test)
|
|
||||||
shift
|
|
||||||
kdump_test "$@"
|
|
||||||
;;
|
|
||||||
*)
|
*)
|
||||||
dinfo $"Usage: $0 {estimate|start|stop|status|restart|reload|rebuild|reset-crashkernel|propagate|showmem|test}"
|
dinfo $"Usage: $0 {estimate|start|stop|status|restart|reload|rebuild|reset-crashkernel|propagate|showmem}"
|
||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
10
kdumpctl.8
10
kdumpctl.8
@ -70,16 +70,6 @@ Note: The memory requirements for kdump varies heavily depending on the
|
|||||||
used hardware and system configuration. Thus the recommended
|
used hardware and system configuration. Thus the recommended
|
||||||
crashkernel might not work for your specific setup. Please test if
|
crashkernel might not work for your specific setup. Please test if
|
||||||
kdump works after resetting the crashkernel value.
|
kdump works after resetting the crashkernel value.
|
||||||
.TP
|
|
||||||
.I test [--force]
|
|
||||||
Test the kdump by actually trigger the system crash & dump, and check if a
|
|
||||||
vmcore can really be generated successfully based on current config and
|
|
||||||
environment. After system reboot back to normal, check the test result
|
|
||||||
by "kdumpctl status".
|
|
||||||
|
|
||||||
If the optional parameter [--force] is provided, there will be no interact
|
|
||||||
before triggering the system crash. Dangerous though, this option is meant
|
|
||||||
for automation testing.
|
|
||||||
|
|
||||||
.SH "SEE ALSO"
|
.SH "SEE ALSO"
|
||||||
.BR kdump.conf (5),
|
.BR kdump.conf (5),
|
||||||
|
16
mkdumprd
16
mkdumprd
@ -61,10 +61,9 @@ add_dracut_sshkey()
|
|||||||
# caller should ensure $1 is valid and mounted in 1st kernel
|
# caller should ensure $1 is valid and mounted in 1st kernel
|
||||||
to_mount()
|
to_mount()
|
||||||
{
|
{
|
||||||
local _target=$1 _fstype=$2 _options=$3 _new_mntpoint=$4
|
local _target=$1 _fstype=$2 _options=$3 _sed_cmd _new_mntpoint _pdev
|
||||||
local _sed_cmd _pdev
|
|
||||||
|
|
||||||
_new_mntpoint="${_new_mntpoint:-$(get_kdump_mntpoint_from_target "$_target")}"
|
_new_mntpoint=$(get_kdump_mntpoint_from_target "$_target")
|
||||||
_fstype="${_fstype:-$(get_fs_type_from_target "$_target")}"
|
_fstype="${_fstype:-$(get_fs_type_from_target "$_target")}"
|
||||||
_options="${_options:-$(get_mntopt_from_target "$_target")}"
|
_options="${_options:-$(get_mntopt_from_target "$_target")}"
|
||||||
_options="${_options:-defaults}"
|
_options="${_options:-defaults}"
|
||||||
@ -475,17 +474,6 @@ if [[ -d /sys/module/nvme ]]; then
|
|||||||
add_dracut_arg "--add-drivers" "nvme"
|
add_dracut_arg "--add-drivers" "nvme"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
status_target=$(get_target_from_path $(dirname "$VMCORE_CREATION_STATUS"))
|
|
||||||
|
|
||||||
if [[ $(get_root_fs_device) != "$status_target" ]]; then
|
|
||||||
new_mntpoint=$(echo /vmcorestatus/$(get_mntpoint_from_target "$status_target") \
|
|
||||||
| tr -s "/")
|
|
||||||
add_mount "$status_target" "" "" "$new_mntpoint"
|
|
||||||
elif ! is_fadump_capable && \
|
|
||||||
! [[ ${dracut_args[@]} == *"$(kdump_get_persistent_dev $status_target)"* ]]; then
|
|
||||||
add_mount "$status_target"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Use kdump managed dracut profile.
|
# Use kdump managed dracut profile.
|
||||||
[[ $kdump_dracut_confdir ]] || kdump_dracut_confdir=/lib/kdump/dracut.conf.d
|
[[ $kdump_dracut_confdir ]] || kdump_dracut_confdir=/lib/kdump/dracut.conf.d
|
||||||
if [[ "$(dracut --help)" == *--add-confdir* ]] && [[ -d "$kdump_dracut_confdir" ]]; then
|
if [[ "$(dracut --help)" == *--add-confdir* ]] && [[ -d "$kdump_dracut_confdir" ]]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user