Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/kexec-tools.git#fc703518525dc85b88873120f2bcf7bffa682735
This commit is contained in:
DistroBaker 2021-01-08 13:46:38 +00:00
parent 7d0122bd5d
commit 6333173003
5 changed files with 153 additions and 26 deletions

View File

@ -105,10 +105,12 @@ dump_raw()
dump_ssh() dump_ssh()
{ {
local ret local _ret=0
local _exitcode=0 _exitcode2=0
local _opt="-i $1 -o BatchMode=yes -o StrictHostKeyChecking=yes" local _opt="-i $1 -o BatchMode=yes -o StrictHostKeyChecking=yes"
local _dir="$KDUMP_PATH/$HOST_IP-$DATEDIR" local _dir="$KDUMP_PATH/$HOST_IP-$DATEDIR"
local _host=$2 local _host=$2
local _vmcore="vmcore"
dinfo "saving to $_host:$_dir" dinfo "saving to $_host:$_dir"
@ -122,25 +124,36 @@ dump_ssh()
if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then
scp -q $_opt /proc/vmcore "$_host:$_dir/vmcore-incomplete" scp -q $_opt /proc/vmcore "$_host:$_dir/vmcore-incomplete"
ret=$? _exitcode=$?
save_log
scp -q $_opt $KDUMP_LOG_FILE "$_host:$_dir/"
if [ $ret -ne 0 ]; then
return 1
fi
ssh $_opt $_host "mv $_dir/vmcore-incomplete $_dir/vmcore" || return 1
else else
$CORE_COLLECTOR /proc/vmcore | ssh $_opt $_host "dd bs=512 of=$_dir/vmcore-incomplete" $CORE_COLLECTOR /proc/vmcore | ssh $_opt $_host "dd bs=512 of=$_dir/vmcore-incomplete"
ret=$? _exitcode=$?
save_log _vmcore="vmcore.flat"
scp -q $_opt $KDUMP_LOG_FILE "$_host:$_dir/" fi
if [ $ret -ne 0 ]; then
return 1 if [ $_exitcode -eq 0 ]; then
fi ssh $_opt $_host "mv $_dir/vmcore-incomplete $_dir/$_vmcore"
ssh $_opt $_host "mv $_dir/vmcore-incomplete $_dir/vmcore.flat" || return 1 _exitcode2=$?
if [ $_exitcode2 -ne 0 ]; then
derror "moving vmcore failed, _exitcode:$_exitcode2"
else
dinfo "saving vmcore complete"
fi
else
derror "saving vmcore failed, _exitcode:$_exitcode"
fi
save_log
scp -q $_opt $KDUMP_LOG_FILE "$_host:$_dir/"
_ret=$?
if [ $_ret -ne 0 ]; then
derror "saving log file failed, _exitcode:$_ret"
fi
if [ $_exitcode -ne 0 ] || [ $_exitcode2 -ne 0 ];then
return 1
fi fi
dinfo "saving vmcore complete"
return 0 return 0
} }

View File

@ -115,7 +115,7 @@ save_log()
# dump_fs <mount point> # dump_fs <mount point>
dump_fs() dump_fs()
{ {
local ret local _exitcode
local _mp=$1 local _mp=$1
local _dev=$(get_mount_info SOURCE target $_mp -f) local _dev=$(get_mount_info SOURCE target $_mp -f)
local _op=$(get_mount_info OPTIONS target $_mp -f) local _op=$(get_mount_info OPTIONS target $_mp -f)
@ -159,16 +159,20 @@ dump_fs()
dinfo "saving vmcore" dinfo "saving vmcore"
$CORE_COLLECTOR /proc/vmcore $_dump_path/vmcore-incomplete $CORE_COLLECTOR /proc/vmcore $_dump_path/vmcore-incomplete
ret=$? _exitcode=$?
if [ $_exitcode -eq 0 ]; then
mv $_dump_path/vmcore-incomplete $_dump_path/vmcore
sync
dinfo "saving vmcore complete"
else
derror "saving vmcore failed, _exitcode:$_exitcode"
fi
save_log save_log
mv $KDUMP_LOG_FILE $_dump_path/ mv $KDUMP_LOG_FILE $_dump_path/
if [ $ret -ne 0 ]; then if [ $_exitcode -ne 0 ]; then
return 1 return 1
fi fi
mv $_dump_path/vmcore-incomplete $_dump_path/vmcore
sync
dinfo "saving vmcore complete"
# improper kernel cmdline can cause the failure of echo, we can ignore this kind of failure # improper kernel cmdline can cause the failure of echo, we can ignore this kind of failure
return 0 return 0

View File

@ -944,7 +944,7 @@ check_fence_kdump_config()
return 1 return 1
fi fi
# node can be ipaddr # node can be ipaddr
echo $ipaddrs | grep $node > /dev/null echo "$ipaddrs " | grep "$node " > /dev/null
if [ $? -eq 0 ]; then if [ $? -eq 0 ]; then
derror "Option fence_kdump_nodes cannot contain $node" derror "Option fence_kdump_nodes cannot contain $node"
return 1 return 1

View File

@ -0,0 +1,101 @@
From 54aec3878b3f91341e6bc735eda158cca5c54ec9 Mon Sep 17 00:00:00 2001
From: Alexander Egorenkov <egorenar@linux.ibm.com>
Date: Fri, 18 Sep 2020 13:55:56 +0200
Subject: [PATCH] [PATCH] make use of 'uts_namespace.name' offset in VMCOREINFO
* Required for kernel 5.11
The offset of the field 'init_uts_ns.name' has changed since
kernel commit 9a56493f6942 ("uts: Use generic ns_common::count").
Make use of the offset 'uts_namespace.name' if available in
VMCOREINFO.
Signed-off-by: Alexander Egorenkov <egorenar@linux.ibm.com>
---
makedumpfile.c | 17 +++++++++++++++--
makedumpfile.h | 6 ++++++
2 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/makedumpfile.c b/makedumpfile.c
index 061741f..ecd63fa 100644
--- a/makedumpfile-1.6.8/makedumpfile.c
+++ b/makedumpfile-1.6.8/makedumpfile.c
@@ -1159,7 +1159,10 @@ check_release(void)
if (SYMBOL(system_utsname) != NOT_FOUND_SYMBOL) {
utsname = SYMBOL(system_utsname);
} else if (SYMBOL(init_uts_ns) != NOT_FOUND_SYMBOL) {
- utsname = SYMBOL(init_uts_ns) + sizeof(int);
+ if (OFFSET(uts_namespace.name) != NOT_FOUND_STRUCTURE)
+ utsname = SYMBOL(init_uts_ns) + OFFSET(uts_namespace.name);
+ else
+ utsname = SYMBOL(init_uts_ns) + sizeof(int);
} else {
ERRMSG("Can't get the symbol of system_utsname.\n");
return FALSE;
@@ -2040,6 +2043,11 @@ get_structure_info(void)
SIZE_INIT(cpu_spec, "cpu_spec");
OFFSET_INIT(cpu_spec.mmu_features, "cpu_spec", "mmu_features");
+ /*
+ * Get offsets of the uts_namespace's members.
+ */
+ OFFSET_INIT(uts_namespace.name, "uts_namespace", "name");
+
return TRUE;
}
@@ -2109,7 +2117,10 @@ get_str_osrelease_from_vmlinux(void)
if (SYMBOL(system_utsname) != NOT_FOUND_SYMBOL) {
utsname = SYMBOL(system_utsname);
} else if (SYMBOL(init_uts_ns) != NOT_FOUND_SYMBOL) {
- utsname = SYMBOL(init_uts_ns) + sizeof(int);
+ if (OFFSET(uts_namespace.name) != NOT_FOUND_STRUCTURE)
+ utsname = SYMBOL(init_uts_ns) + OFFSET(uts_namespace.name);
+ else
+ utsname = SYMBOL(init_uts_ns) + sizeof(int);
} else {
ERRMSG("Can't get the symbol of system_utsname.\n");
return FALSE;
@@ -2344,6 +2355,7 @@ write_vmcoreinfo_data(void)
WRITE_MEMBER_OFFSET("vmemmap_backing.list", vmemmap_backing.list);
WRITE_MEMBER_OFFSET("mmu_psize_def.shift", mmu_psize_def.shift);
WRITE_MEMBER_OFFSET("cpu_spec.mmu_features", cpu_spec.mmu_features);
+ WRITE_MEMBER_OFFSET("uts_namespace.name", uts_namespace.name);
if (SYMBOL(node_data) != NOT_FOUND_SYMBOL)
WRITE_ARRAY_LENGTH("node_data", node_data);
@@ -2743,6 +2755,7 @@ read_vmcoreinfo(void)
READ_MEMBER_OFFSET("vmemmap_backing.list", vmemmap_backing.list);
READ_MEMBER_OFFSET("mmu_psize_def.shift", mmu_psize_def.shift);
READ_MEMBER_OFFSET("cpu_spec.mmu_features", cpu_spec.mmu_features);
+ READ_MEMBER_OFFSET("uts_namespace.name", uts_namespace.name);
READ_STRUCTURE_SIZE("printk_log", printk_log);
READ_STRUCTURE_SIZE("printk_ringbuffer", printk_ringbuffer);
diff --git a/makedumpfile.h b/makedumpfile.h
index 47f7e79..5f50080 100644
--- a/makedumpfile-1.6.8/makedumpfile.h
+++ b/makedumpfile-1.6.8/makedumpfile.h
@@ -1728,6 +1728,8 @@ struct size_table {
long cpu_spec;
long pageflags;
+
+ long uts_namespace;
};
struct offset_table {
@@ -1935,6 +1937,10 @@ struct offset_table {
struct cpu_spec_s {
long mmu_features;
} cpu_spec;
+
+ struct uts_namespace_s {
+ long name;
+ } uts_namespace;
};
/*
--
2.29.2

View File

@ -5,7 +5,7 @@
Name: kexec-tools Name: kexec-tools
Version: 2.0.21 Version: 2.0.21
Release: 1%{?dist} Release: 2%{?dist}
License: GPLv2 License: GPLv2
Summary: The kexec/kdump userspace component Summary: The kexec/kdump userspace component
@ -63,6 +63,7 @@ Requires: dracut >= 050
Requires: dracut-network >= 050 Requires: dracut-network >= 050
Requires: dracut-squash >= 050 Requires: dracut-squash >= 050
Requires: ethtool Requires: ethtool
BuildRequires: make
BuildRequires: zlib-devel elfutils-devel glib2-devel bzip2-devel ncurses-devel bison flex lzo-devel snappy-devel BuildRequires: zlib-devel elfutils-devel glib2-devel bzip2-devel ncurses-devel bison flex lzo-devel snappy-devel
BuildRequires: pkgconfig intltool gettext BuildRequires: pkgconfig intltool gettext
BuildRequires: systemd-units BuildRequires: systemd-units
@ -102,6 +103,7 @@ Requires: systemd-udev%{?_isa}
Patch601: ./kexec-tools-2.0.20-eppic-Remove-duplicated-variable-declaration.patch Patch601: ./kexec-tools-2.0.20-eppic-Remove-duplicated-variable-declaration.patch
Patch603: ./kexec-tools-2.0.20-makedumpfile-printk-add-support-for-lockless-ringbuffer.patch Patch603: ./kexec-tools-2.0.20-makedumpfile-printk-add-support-for-lockless-ringbuffer.patch
Patch604: ./kexec-tools-2.0.20-makedumpfile-printk-use-committed-finalized-state-value.patch Patch604: ./kexec-tools-2.0.20-makedumpfile-printk-use-committed-finalized-state-value.patch
Patch605: ./kexec-tools-2.0.21-makedumpfile-make-use-of-uts_namespace.name-offset-in-VMCOR.patch
%description %description
kexec-tools provides /sbin/kexec binary that facilitates a new kexec-tools provides /sbin/kexec binary that facilitates a new
@ -120,6 +122,7 @@ tar -z -x -v -f %{SOURCE19}
%patch601 -p1 %patch601 -p1
%patch603 -p1 %patch603 -p1
%patch604 -p1 %patch604 -p1
%patch605 -p1
%ifarch ppc %ifarch ppc
%define archdef ARCH=ppc %define archdef ARCH=ppc
@ -358,6 +361,12 @@ done
%endif %endif
%changelog %changelog
* Fri Jan 08 2021 Kairui Song <kasong@redhat.com> - 2.0.21-2
- makedumpfile: make use of 'uts_namespace.name' offset in VMCOREINFO
- kdumpctl: fix a variable expansion in check_fence_kdump_config()
- Add BuildRequires: make
- Save the final failure information to log file if saving vmcore failed
* Wed Dec 23 2020 Kairui Song <kasong@redhat.com> - 2.0.21-1 * Wed Dec 23 2020 Kairui Song <kasong@redhat.com> - 2.0.21-1
- makedumpfile: printk: use committed/finalized state values - makedumpfile: printk: use committed/finalized state values
- makedumpfile: printk: add support for lockless ringbuffer - makedumpfile: printk: add support for lockless ringbuffer