Package: kexec-tools
Version: 1:2.0.10-1
Severity: normal
Dear Maintainer,
*** Reporter, please consider answering these questions, where appropriate ***
* What led up to the situation?
Using Linux kernels later than 4.2.0 on a machine that uses the eata driver
to access a disk on a DPT2044W SCSI controller.
* What exactly did you do (or not do) that was effective (or
ineffective)?
Discussed on the linux-scsi mailing list:
http://comments.gmane.org/gmane.linux.scsi/104634
given some patches, did testing and found:
After some more thorough testing I've encountered an ongoing problem trying to
use kexec with filesystems mounted with the eata driver.
If I boot up and have the eata driver loaded but no filesystem check or
mounting of filesystems on the disk attached to the DPT2044W controller, then
attempt a kexec reboot I get the reboot pausing after the "synchronizing scsi
cache" messages and getting the errors that I have included as pictures in my
previous reports.
If I do a normal boot which includes eata being loaded, the disk attached to
the DPT2044W controller having its filesystems checked and mounted, then
attempt a kexec reboot, I get the reboot pausing after the "synchronizing SCSI
cache" messages as before.
If I un-mount the filesystems on the disk attached to the DPT2044W controller
after start-up and try a reboot I get the same problem.
If I do modprobe -r eata after un-mounting the filesystems on the disk attached
to the DPT2044W controller after a start-up kexec *works fine*.
If I do:
start-up
un-mount filesystems on disk attached to DPT2044W controller
modprobe -r eata
modprobe eata
fsck -a of filesystems on disk attached to DPT2044W controller
mount filesystems
then a kexec reboot works fine.
I did some more experimenting and found a workaround:
I was unable to blacklist the eata module but if I did:
modprobe -r eata
modprobe eata
in a cron job before the fsck and mount commands then
I could then perform a kexec reboot successfully.
I also verified that if I did:
modprobe -r eata
after eata was loaded on boot-up without any fsck or mounting of filesystems on
the disk attached to the DPT2044W controller using the eata the kexec reboot
worked fine.
In summary:
if eata is loaded kexec reboot will fail unless a modprobe -r eata is done
either manually or by a cron job.
if a modprobe -r eata has been done, then even if I modprobe eata and fsck and
mount filesystems, kexec reboot works.
Any suggestions for further tests or checks welcome.
* What was the outcome of this action?
* What outcome did you expect instead?
*** End of the template - remove these template lines ***
-- System Information:
Debian Release: stretch/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable'), (500,
'oldstable'), (1, 'experimental')
Architecture: i386 (i686)
Kernel: Linux 4.3.0-rc3+ (SMP w/1 CPU core; PREEMPT)
Locale: LANG=en_AU.UTF-8, LC_CTYPE=en_AU.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Init: sysvinit (via /sbin/init)
Versions of packages kexec-tools depends on:
ii debconf [debconf-2.0] 1.5.57
ii libc6 2.19-22
kexec-tools recommends no packages.
kexec-tools suggests no packages.
-- Configuration Files:
/etc/default/kexec changed:
LOAD_KEXEC=true
KERNEL_IMAGE="/boot/vmlinuz-4.3.0-rc3+"
INITRD="/boot/initrd.img-4.3.0-rc3+"
APPEND=""
USE_GRUB_CONFIG=false
/etc/init.d/kexec changed:
PATH=/sbin:/bin
. /lib/lsb/init-functions
test -r /etc/default/kexec && . /etc/default/kexec
do_stop () {
test "x`cat /sys/kernel/kexec_loaded`y" = "x1y" || exit 0
test -x /sbin/kexec || exit 0
mount
sleep 5
log_action_msg "Will now restart with kexec"
# Clear the screen if possible
printf "\033[;H\033[2J"
/sbin/kexec -e
log_failure_msg "kexec failed"
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
exit 0
-- debconf-show failed