kdump functionality not working as expected when /boot is a separate partition
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
kexec-tools (Ubuntu) |
Fix Released
|
Medium
|
Canonical Foundations Team | ||
Lucid |
Fix Released
|
Medium
|
Barry Warsaw | ||
Maverick |
Fix Released
|
Medium
|
Unassigned | ||
Natty |
Fix Released
|
Medium
|
Barry Warsaw | ||
Oneiric |
Fix Released
|
Medium
|
Barry Warsaw |
Bug Description
SRU Request for Lucid/Maverick/
[Impact] - When a server is configured with the /boot as a separate partition, which is the default configuration when LVM installation is selected, the kdump mechanism fails systematically.
[Development/Stable Fix] - This has been fixed in the development version with the addition of the following:
* Backport changes to fix kdump functionality. LP: #828731.
- debian/
so that if makedumpfile is statically linked, we get proper library
resolution. Thanks to Louis Bouchard <email address hidden> for
the patch. LP: #785425.
- debian/
/var is on a separate filesystem and needs to be manually mounted before
calling makedumpfile. LP: #828731.
- Depend on makedumpfile, without which the initramfs script doesn't work.
- Fix an unnecessary bashism.
- Only install the kdump initramfs script and depend on makedumpfile on
architectures that makedumpfile supports.
[Test Case] - See 'how to reproduce' below.
[Regression Potential] - Need to ensure kdump works correctly in backported versions.
--
Description : Ubuntu 10.04.2
Release : 10.04
When a server is configured with the /boot as a separate partition, which is the default configuration when LVM installation is selected, the kdump mechanism fails systematically.
This is caused by the fact that the ./scripts/
KVER="`uname -r`"
INFO=
CRASHFILE=
MAKEDUMPFILE
LOG=
VMCORE=
# Check that this is a kexec kernel.
grep -q kdump_needed /proc/cmdline || exit 0
# Do NOT exit the script after this point, or the system will start
# booting inside the crash kernel.
. ./scripts/functions
# Make sure makedumpfile assumptions are satisfied.
while ! test -e "$INFO"; do
panic "kdump: Missing $INFO"
done
while ! test -x "$MAKEDUMPFILE"; do
panic "kdump: Missing $MAKEDUMPFILE"
done
The test 'while !test -e "$INFO";do' fails if /boot is a separate partition.
Reproducible: 100%
How to Reproduce :
Pre-requisite : a system or VM installed with LVM and /boot as a separate partition (default option for LVM installation)
1) install the linux-crashdump package & dependancies
2) Increase the crashkernel= parameter to 128M if the RAM is below 2048M (LP Bug#785394) in /etc/grub.
3) Run sudo update-grub
4) Reboot the system
5) Force a panic with "echo c > /proc/sysrq-trigger
The system will reboot to the kexec kernel with complete network access enabled :
# cat /proc/cmdline
BOOT_IMAGE=
Workaround:
Copy the content of the /boot partition into the /boot directory. This is only valid until the next upgrade of the "linux-
How to workaround :
6) Reboot the system
7) Copy the content of the /boot partition into the /boot directory
# df /boot
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 233191 17563 203187 8% /boot
# sudo umount /boot
# sudo mount /dev/vda1 /mnt
# sudo cp -pr /mnt/* /boot
# sudo umount /mnt
# sudo mount -a
# sudo echo c > /proc/sysrq-
The system will correctly generate a crash dump
# find /var/crash
/var/crash
/var/
ProblemType: Bug
DistroRelease: Ubuntu 10.04.02
Package: kexec-tools-
Uname: Linux 2.6.32-28-server x86_64
Architecture: amd64
Related branches
Changed in kexec-tools (Ubuntu): | |
status: | New → Triaged |
importance: | Undecided → Medium |
assignee: | nobody → Canonical Kernel Team (canonical-kernel-team) |
Changed in kexec-tools (Ubuntu): | |
assignee: | Canonical Kernel Team (canonical-kernel-team) → Canonical Foundations Team (canonical-foundations) |
Changed in kexec-tools (Ubuntu Lucid): | |
status: | New → Triaged |
Changed in kexec-tools (Ubuntu Maverick): | |
status: | New → Triaged |
Changed in kexec-tools (Ubuntu Natty): | |
status: | New → Triaged |
Changed in kexec-tools (Ubuntu Oneiric): | |
status: | New → Triaged |
Changed in kexec-tools (Ubuntu Lucid): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Maverick): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Natty): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Oneiric): | |
importance: | Undecided → Medium |
Changed in kexec-tools (Ubuntu Lucid): | |
status: | Triaged → In Progress |
Changed in kexec-tools (Ubuntu Natty): | |
status: | Triaged → In Progress |
Changed in kexec-tools (Ubuntu Maverick): | |
status: | Triaged → In Progress |
Changed in kexec-tools (Ubuntu Oneiric): | |
status: | Triaged → In Progress |
Changed in kexec-tools (Ubuntu Lucid): | |
assignee: | Chris J Arges (christopherarges) → Barry Warsaw (barry) |
Changed in kexec-tools (Ubuntu Maverick): | |
assignee: | Chris J Arges (christopherarges) → Barry Warsaw (barry) |
Changed in kexec-tools (Ubuntu Natty): | |
assignee: | Chris J Arges (christopherarges) → Barry Warsaw (barry) |
Changed in kexec-tools (Ubuntu Oneiric): | |
assignee: | Chris J Arges (christopherarges) → Barry Warsaw (barry) |
tags: | added: verification-needed |
Changed in kexec-tools (Ubuntu Oneiric): | |
status: | In Progress → Fix Committed |
Changed in kexec-tools (Ubuntu Natty): | |
status: | In Progress → Fix Committed |
Changed in kexec-tools (Ubuntu Maverick): | |
status: | In Progress → Fix Committed |
Changed in kexec-tools (Ubuntu Lucid): | |
status: | In Progress → Fix Committed |
Changed in kexec-tools (Ubuntu Maverick): | |
status: | In Progress → Won't Fix |
milestone: | maverick-updates → none |
assignee: | Barry Warsaw (barry) → nobody |
tags: | added: verification-done |
tags: | removed: verification-done |
tags: |
added: verification-done removed: verification-needed |
The following patch fixes the situation where the kdump data collection fails when the /boot is a separate partition, which is the case when the standard LVM installation is selected.
The patch has been built against the kexec-tools 1:2.0.2-1ubuntu3 (11.10 Oneiric) but also applies to the version found on Lucid. This was done to take into accound the next upcoming version with will be LTS.