From: Kairui Song kasong@tencent.com
Make log saving the last step of kdump.sh, so it can catch more info, for example, the output of post.d hooks will be covered by the log now.
Signed-off-by: Kairui Song kasong@tencent.com --- Update from V1: - Skip save_log when "KDUMP_LOG_OP" is empty, eg. raw_target Thanks to Philipp Rudo for the suggestion.
dracut-kdump.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index b17455a..f4456a1 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -15,6 +15,8 @@ fi
KDUMP_PATH="/var/crash" KDUMP_LOG_FILE="/run/initramfs/kexec-dmesg.log" +KDUMP_LOG_DEST="" +KDUMP_LOG_OP="" CORE_COLLECTOR="" DEFAULT_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" DMESG_COLLECTOR="/sbin/vmcore-dmesg" @@ -113,12 +115,19 @@ get_kdump_confs() # store the kexec kernel log to a file. save_log() { + # LOG_OP is empty when log can't be saved, eg. raw target + [ -n "$KDUMP_LOG_OP" ] || return + dmesg -T > $KDUMP_LOG_FILE
if command -v journalctl > /dev/null; then journalctl -ab >> $KDUMP_LOG_FILE fi chmod 600 $KDUMP_LOG_FILE + + dinfo "saving the $KDUMP_LOG_FILE to $KDUMP_LOG_DEST/" + + eval "$KDUMP_LOG_OP" }
# $1: dump path, must be a mount point @@ -159,6 +168,9 @@ dump_fs() save_opalcore_fs "$_dump_fs_path"
dinfo "saving vmcore" + KDUMP_LOG_DEST=$_dump_fs_path/ + KDUMP_LOG_OP="mv '$KDUMP_LOG_FILE' '$KDUMP_LOG_DEST/'" + $CORE_COLLECTOR /proc/vmcore "$_dump_fs_path/vmcore-incomplete" _dump_exitcode=$? if [ $_dump_exitcode -eq 0 ]; then @@ -167,12 +179,6 @@ dump_fs() dinfo "saving vmcore complete" else derror "saving vmcore failed, exitcode:$_dump_exitcode" - fi - - dinfo "saving the $KDUMP_LOG_FILE to $_dump_fs_path/" - save_log - mv "$KDUMP_LOG_FILE" "$_dump_fs_path/" - if [ $_dump_exitcode -ne 0 ]; then return 1 fi
@@ -395,8 +401,12 @@ dump_ssh() ssh -q $_ssh_opt "$2" mkdir -p "$_ssh_dir" || return 1
save_vmcore_dmesg_ssh "$DMESG_COLLECTOR" "$_ssh_dir" "$_ssh_opt" "$2" + dinfo "saving vmcore"
+ KDUMP_LOG_DEST=$2:$_ssh_dir/ + KDUMP_LOG_OP="scp -q $_ssh_opt '$KDUMP_LOG_FILE' '$_scp_address:$_ssh_dir/'" + save_opalcore_ssh "$_ssh_dir" "$_ssh_opt" "$2" "$_scp_address"
if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then @@ -421,12 +431,6 @@ dump_ssh() derror "saving vmcore failed, exitcode:$_ret" fi
- dinfo "saving the $KDUMP_LOG_FILE to $2:$_ssh_dir/" - save_log - if ! scp -q $_ssh_opt $KDUMP_LOG_FILE "$_scp_address:$_ssh_dir/"; then - derror "saving log file failed, _exitcode:$_ret" - fi - return $_ret }
@@ -576,6 +580,8 @@ if ! do_kdump_post $DUMP_RETVAL; then derror "kdump_post script exited with non-zero status!" fi
+save_log + if [ $DUMP_RETVAL -ne 0 ]; then exit 1 fi
Hi Kairui,
nice to see you on the list again :-)
On Sat, 23 Apr 2022 21:07:31 +0800 Kairui Song ryncsn@gmail.com wrote:
From: Kairui Song kasong@tencent.com
Make log saving the last step of kdump.sh, so it can catch more info, for example, the output of post.d hooks will be covered by the log now.
Signed-off-by: Kairui Song kasong@tencent.com
Reviewed-by: Philipp Rudo prudo@redhat.com
Update from V1:
- Skip save_log when "KDUMP_LOG_OP" is empty, eg. raw_target Thanks to Philipp Rudo for the suggestion.
dracut-kdump.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index b17455a..f4456a1 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -15,6 +15,8 @@ fi
KDUMP_PATH="/var/crash" KDUMP_LOG_FILE="/run/initramfs/kexec-dmesg.log" +KDUMP_LOG_DEST="" +KDUMP_LOG_OP="" CORE_COLLECTOR="" DEFAULT_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" DMESG_COLLECTOR="/sbin/vmcore-dmesg" @@ -113,12 +115,19 @@ get_kdump_confs() # store the kexec kernel log to a file. save_log() {
# LOG_OP is empty when log can't be saved, eg. raw target
[ -n "$KDUMP_LOG_OP" ] || return
dmesg -T > $KDUMP_LOG_FILE
if command -v journalctl > /dev/null; then journalctl -ab >> $KDUMP_LOG_FILE fi chmod 600 $KDUMP_LOG_FILE
dinfo "saving the $KDUMP_LOG_FILE to $KDUMP_LOG_DEST/"
eval "$KDUMP_LOG_OP"
}
# $1: dump path, must be a mount point @@ -159,6 +168,9 @@ dump_fs() save_opalcore_fs "$_dump_fs_path"
dinfo "saving vmcore"
- KDUMP_LOG_DEST=$_dump_fs_path/
- KDUMP_LOG_OP="mv '$KDUMP_LOG_FILE' '$KDUMP_LOG_DEST/'"
- $CORE_COLLECTOR /proc/vmcore "$_dump_fs_path/vmcore-incomplete" _dump_exitcode=$? if [ $_dump_exitcode -eq 0 ]; then
@@ -167,12 +179,6 @@ dump_fs() dinfo "saving vmcore complete" else derror "saving vmcore failed, exitcode:$_dump_exitcode"
- fi
- dinfo "saving the $KDUMP_LOG_FILE to $_dump_fs_path/"
- save_log
- mv "$KDUMP_LOG_FILE" "$_dump_fs_path/"
- if [ $_dump_exitcode -ne 0 ]; then return 1 fi
@@ -395,8 +401,12 @@ dump_ssh() ssh -q $_ssh_opt "$2" mkdir -p "$_ssh_dir" || return 1
save_vmcore_dmesg_ssh "$DMESG_COLLECTOR" "$_ssh_dir" "$_ssh_opt" "$2"
dinfo "saving vmcore"
KDUMP_LOG_DEST=$2:$_ssh_dir/
KDUMP_LOG_OP="scp -q $_ssh_opt '$KDUMP_LOG_FILE' '$_scp_address:$_ssh_dir/'"
save_opalcore_ssh "$_ssh_dir" "$_ssh_opt" "$2" "$_scp_address"
if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then
@@ -421,12 +431,6 @@ dump_ssh() derror "saving vmcore failed, exitcode:$_ret" fi
- dinfo "saving the $KDUMP_LOG_FILE to $2:$_ssh_dir/"
- save_log
- if ! scp -q $_ssh_opt $KDUMP_LOG_FILE "$_scp_address:$_ssh_dir/"; then
derror "saving log file failed, _exitcode:$_ret"
- fi
- return $_ret
}
@@ -576,6 +580,8 @@ if ! do_kdump_post $DUMP_RETVAL; then derror "kdump_post script exited with non-zero status!" fi
+save_log
if [ $DUMP_RETVAL -ne 0 ]; then exit 1 fi
Philipp Rudo prudo@redhat.com 于 2022年4月25日周一 下午8:22写道:
Hi Kairui,
nice to see you on the list again :-)
; )
On Sat, 23 Apr 2022 21:07:31 +0800 Kairui Song ryncsn@gmail.com wrote:
From: Kairui Song kasong@tencent.com
Make log saving the last step of kdump.sh, so it can catch more info, for example, the output of post.d hooks will be covered by the log now.
Signed-off-by: Kairui Song kasong@tencent.com
Reviewed-by: Philipp Rudo prudo@redhat.com
Thanks.
Update from V1:
- Skip save_log when "KDUMP_LOG_OP" is empty, eg. raw_target Thanks to Philipp Rudo for the suggestion.
dracut-kdump.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index b17455a..f4456a1 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -15,6 +15,8 @@ fi
KDUMP_PATH="/var/crash" KDUMP_LOG_FILE="/run/initramfs/kexec-dmesg.log" +KDUMP_LOG_DEST="" +KDUMP_LOG_OP="" CORE_COLLECTOR="" DEFAULT_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" DMESG_COLLECTOR="/sbin/vmcore-dmesg" @@ -113,12 +115,19 @@ get_kdump_confs() # store the kexec kernel log to a file. save_log() {
# LOG_OP is empty when log can't be saved, eg. raw target
[ -n "$KDUMP_LOG_OP" ] || return
dmesg -T > $KDUMP_LOG_FILE if command -v journalctl > /dev/null; then journalctl -ab >> $KDUMP_LOG_FILE fi chmod 600 $KDUMP_LOG_FILE
dinfo "saving the $KDUMP_LOG_FILE to $KDUMP_LOG_DEST/"
eval "$KDUMP_LOG_OP"
}
# $1: dump path, must be a mount point @@ -159,6 +168,9 @@ dump_fs() save_opalcore_fs "$_dump_fs_path"
dinfo "saving vmcore"
KDUMP_LOG_DEST=$_dump_fs_path/
KDUMP_LOG_OP="mv '$KDUMP_LOG_FILE' '$KDUMP_LOG_DEST/'"
$CORE_COLLECTOR /proc/vmcore "$_dump_fs_path/vmcore-incomplete" _dump_exitcode=$? if [ $_dump_exitcode -eq 0 ]; then
@@ -167,12 +179,6 @@ dump_fs() dinfo "saving vmcore complete" else derror "saving vmcore failed, exitcode:$_dump_exitcode"
fi
dinfo "saving the $KDUMP_LOG_FILE to $_dump_fs_path/"
save_log
mv "$KDUMP_LOG_FILE" "$_dump_fs_path/"
if [ $_dump_exitcode -ne 0 ]; then return 1 fi
@@ -395,8 +401,12 @@ dump_ssh() ssh -q $_ssh_opt "$2" mkdir -p "$_ssh_dir" || return 1
save_vmcore_dmesg_ssh "$DMESG_COLLECTOR" "$_ssh_dir" "$_ssh_opt" "$2"
dinfo "saving vmcore"
KDUMP_LOG_DEST=$2:$_ssh_dir/
KDUMP_LOG_OP="scp -q $_ssh_opt '$KDUMP_LOG_FILE' '$_scp_address:$_ssh_dir/'"
save_opalcore_ssh "$_ssh_dir" "$_ssh_opt" "$2" "$_scp_address" if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then
@@ -421,12 +431,6 @@ dump_ssh() derror "saving vmcore failed, exitcode:$_ret" fi
dinfo "saving the $KDUMP_LOG_FILE to $2:$_ssh_dir/"
save_log
if ! scp -q $_ssh_opt $KDUMP_LOG_FILE "$_scp_address:$_ssh_dir/"; then
derror "saving log file failed, _exitcode:$_ret"
fi
return $_ret
}
@@ -576,6 +580,8 @@ if ! do_kdump_post $DUMP_RETVAL; then derror "kdump_post script exited with non-zero status!" fi
+save_log
if [ $DUMP_RETVAL -ne 0 ]; then exit 1 fi
Patch merged, thanks to Kairui and Philipp!
On Sat, Apr 23, 2022 at 09:07:31PM +0800, Kairui Song wrote:
From: Kairui Song kasong@tencent.com
Make log saving the last step of kdump.sh, so it can catch more info, for example, the output of post.d hooks will be covered by the log now.
Signed-off-by: Kairui Song kasong@tencent.com
Update from V1:
- Skip save_log when "KDUMP_LOG_OP" is empty, eg. raw_target
Thanks to Philipp Rudo for the suggestion.
dracut-kdump.sh | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/dracut-kdump.sh b/dracut-kdump.sh index b17455a..f4456a1 100755 --- a/dracut-kdump.sh +++ b/dracut-kdump.sh @@ -15,6 +15,8 @@ fi
KDUMP_PATH="/var/crash" KDUMP_LOG_FILE="/run/initramfs/kexec-dmesg.log" +KDUMP_LOG_DEST="" +KDUMP_LOG_OP="" CORE_COLLECTOR="" DEFAULT_CORE_COLLECTOR="makedumpfile -l --message-level 7 -d 31" DMESG_COLLECTOR="/sbin/vmcore-dmesg" @@ -113,12 +115,19 @@ get_kdump_confs() # store the kexec kernel log to a file. save_log() {
# LOG_OP is empty when log can't be saved, eg. raw target
[ -n "$KDUMP_LOG_OP" ] || return
dmesg -T > $KDUMP_LOG_FILE
if command -v journalctl > /dev/null; then journalctl -ab >> $KDUMP_LOG_FILE fi chmod 600 $KDUMP_LOG_FILE
dinfo "saving the $KDUMP_LOG_FILE to $KDUMP_LOG_DEST/"
eval "$KDUMP_LOG_OP"
}
# $1: dump path, must be a mount point @@ -159,6 +168,9 @@ dump_fs() save_opalcore_fs "$_dump_fs_path"
dinfo "saving vmcore"
- KDUMP_LOG_DEST=$_dump_fs_path/
- KDUMP_LOG_OP="mv '$KDUMP_LOG_FILE' '$KDUMP_LOG_DEST/'"
- $CORE_COLLECTOR /proc/vmcore "$_dump_fs_path/vmcore-incomplete" _dump_exitcode=$? if [ $_dump_exitcode -eq 0 ]; then
@@ -167,12 +179,6 @@ dump_fs() dinfo "saving vmcore complete" else derror "saving vmcore failed, exitcode:$_dump_exitcode"
- fi
- dinfo "saving the $KDUMP_LOG_FILE to $_dump_fs_path/"
- save_log
- mv "$KDUMP_LOG_FILE" "$_dump_fs_path/"
- if [ $_dump_exitcode -ne 0 ]; then return 1 fi
@@ -395,8 +401,12 @@ dump_ssh() ssh -q $_ssh_opt "$2" mkdir -p "$_ssh_dir" || return 1
save_vmcore_dmesg_ssh "$DMESG_COLLECTOR" "$_ssh_dir" "$_ssh_opt" "$2"
dinfo "saving vmcore"
KDUMP_LOG_DEST=$2:$_ssh_dir/
KDUMP_LOG_OP="scp -q $_ssh_opt '$KDUMP_LOG_FILE' '$_scp_address:$_ssh_dir/'"
save_opalcore_ssh "$_ssh_dir" "$_ssh_opt" "$2" "$_scp_address"
if [ "${CORE_COLLECTOR%%[[:blank:]]*}" = "scp" ]; then
@@ -421,12 +431,6 @@ dump_ssh() derror "saving vmcore failed, exitcode:$_ret" fi
- dinfo "saving the $KDUMP_LOG_FILE to $2:$_ssh_dir/"
- save_log
- if ! scp -q $_ssh_opt $KDUMP_LOG_FILE "$_scp_address:$_ssh_dir/"; then
derror "saving log file failed, _exitcode:$_ret"
- fi
- return $_ret
}
@@ -576,6 +580,8 @@ if ! do_kdump_post $DUMP_RETVAL; then derror "kdump_post script exited with non-zero status!" fi
+save_log
if [ $DUMP_RETVAL -ne 0 ]; then exit 1 fi -- 2.35.2 _______________________________________________ kexec mailing list -- kexec@lists.fedoraproject.org To unsubscribe send an email to kexec-leave@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