Bug 1221943

Summary: On_crash events didn't work when using guest's pvpanic device
Product: Red Hat Enterprise Linux 7 Reporter: zhenfeng wang <zhwang>
Component: qemu-kvm-rhevAssignee: Radim Krčmář <rkrcmar>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 7.2CC: hhuang, huding, jdenemar, juzhang, mrezanin, mzhan, rbalakri, virt-maint, xfu, xwei, zhwang
Target Milestone: rcKeywords: Reopened
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-2.3.0-5.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-12-04 16:42:08 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description zhenfeng wang 2015-05-15 10:07:22 UTC
Description of problem:
Guest will hang there while set machine type pc-i440fx-rhel7.1.0/rhel7.2.0 , panic device in guest's xml and get guest crash with  echo c >/proc/sysrq-trigger command

Version-Release number:
host packet info
qemu-kvm-rhev-2.3.0-1.el7.x86_64
kernel-3.10.0-252.el7.x86_64
libvirt-1.2.15-2.el7.x86_64

guest packet info
kernel-3.10.0-252.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.Prepare a guest with panic enabled
#virsh dumpxml 7.2
--
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.2.0'>hvm</type>
    <boot dev='hd'/>
  </os>

--
  <on_crash>coredump-restart</on_crash>
--
 <panic>
      <address type='isa' iobase='0x505'/>
    </panic>

2.Start the guest
#virsh start 7.2

3.Login guest and crash the guest with the following command, the guest will hang there and won't generate the dump file
guest#systemctl stop kdump
guest#echo c >/proc/sysrq-trigger

4.Other on_crash events coredump-destroy,destroy,restart can also hit this issue

5.Crash the guest with the following command , the guest with the following command, the guest won't hang and will work as expect
#sync
#printf '%b' '\x01' | dd of=/dev/port seek=$((16#505)) bs=1 count=1

6.It works well with qemu-kvm-rhev-2.2.0-9.el7.x86_64 with machine type pc-i440fx-rhel7.1.0

Actual results:
Guest will hang there while set machine type pc-i440fx-rhel7.1.0/rhel7.2.0 , panic device in guest's xml and get guest crash with  echo c >/proc/sysrq-trigger command

Expected results:
The guest shouldn't hang and the on_crash events should work as expect while crash guest with   echo c >/proc/sysrq-trigger command

Comment 2 Jiri Denemark 2015-05-15 12:03:56 UTC
Sounds like an issue with the guest's kernel or panic device driver. Moving to qemu-kvm-rhev for further investigation and decision about the right component.

Comment 4 zhenfeng wang 2015-05-19 08:34:24 UTC
hi Hai
I try the command you gave me in rhel7.2 physical host, the host will hang there and print some call trace info in the screen after run the second command

#echo c >/proc/sysrq-trigger

[   375.034957] SysRq : Trigger a crash

[   375.038595] BUG unable to handle kernel NULL pointer dereference at  (null)
[   375.046749] IP: [<ffffffff81397486>] sysrq_handle_crash+0x16/0x20

Comment 6 zhenfeng wang 2015-05-20 14:10:32 UTC
Hi Hai
If I‘m not mistaken to remember it, there should have two ways to take a crash dump while guest get crash, one way, we could generate the crash dump by kdump service, another way, we could get the crash dump file by pvpanic device, both ways should be ok. In fact, we can always get the dump file while enable panic device in guest's xml, stop kdump service inside guest,then get guest crash. Only we met this issue while test it with qemu-kvm-rhev-2.3.0-1.el7.x86_64 and set guest machine type pc-i440fx-rhel7.2.0, so i doubt that did we change anyting about the pvpanic with the latest qemu packet, if it did, so can you explain it to us ?  so that we can change this part in our testplan in time, thanks

Comment 7 zhenfeng wang 2015-05-26 00:51:57 UTC
Hi Hai
can you help check the comment6's description? since it's still deserving of doing some research for this bug. thanks

Comment 9 Radim Krčmář 2015-05-27 16:39:58 UTC
qemu-2.3 doesn't generate an ACPI function that the kernel uses to query availability of the pvpanic device, so it doesn't get used.
(Like you noticed, it works fine when writing to its port manually.)

I've posted a patch upstream,
http://lists.nongnu.org/archive/html/qemu-devel/2015-05/msg05609.html

Thanks.

Comment 12 Miroslav Rezanina 2015-06-24 08:36:47 UTC
Fix included in qemu-kvm-rhev-2.3.0-5.el7

Comment 14 Xiaoqing Wei 2015-07-03 05:38:03 UTC
with vm xml in https://bugzilla.redhat.com/show_bug.cgi?id=1221943#c0

on qemu-kvm-rhev-2.3.0-2.el7
vm kernel hang at panic

on qemu-kvm-rhev-2.3.0-7.el7
vm reboot after 'echo c > /proc/sysrq-trigger'


moving to VERIFIED.

Comment 16 errata-xmlrpc 2015-12-04 16:42:08 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://rhn.redhat.com/errata/RHBA-2015-2546.html