Bug 1151947
Summary: | virtconsole causes qemu-kvm core dump | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Shaolong Hu <shu> |
Component: | qemu-kvm-rhev | Assignee: | Amit Shah <amit.shah> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | high | Docs Contact: | |
Priority: | medium | ||
Version: | 7.1 | CC: | amit.shah, hhuang, juli, juzhang, mdeng, michen, mrezanin, virt-maint |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.1.2-8.el7 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-03-05 09:56:27 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
Shaolong Hu
2014-10-13 07:20:24 UTC
A patch was posted upstream by Marc-Andre Lureau fixing this. Fix included in qemu-kvm-rhev-2.1.2-8.el7 Reproduce: Version of components: qemu-kvm-rhev-2.1.2-1.el7.x86_64 steps the same with comment 0: 1. boot guest with "-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev socket,id=charchannel0,path=/tmp/serial-socket,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev socket,path=/tmp/foo,server,nowait,id=foo -device virtconsole,chardev=foo,id=console0" e.g: # gdb --args /usr/libexec/qemu-kvm -m 2G -smp 2 -boot menu=on -drive file=/root/RHEL-7.1-20141111.0.qcow2,if=none,id=img,snapshot=on -device virtio-blk-pci,drive=img,id=sys-img,bootindex=1 -monitor stdio -qmp tcp::8888,server,nowait -spice port=5931,disable-ticketing -serial unix:/tmp/ttyS0,server,nowait -netdev tap,id=tap0,script=/etc/qemu-ifup,vhost=on -device virtio-net-pci,netdev=tap0,id=net0,mac=24:be:05:12:33:11,mq=on,bootindex=2 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev socket,id=charchannel0,path=/tmp/serial-socket,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=comredhat.rhevm.vdsm -chardev socket,path=/tmp/foo,server,nowait,id=foo -device virtconsole,chardev=foo,id=console0 qemu-kvm core dump: (gdb) bt #0 0x00007ffff1f74dea in __strcmp_sse42 () from /usr/lib64/libc.so.6 #1 0x00005555556646b8 in virtser_port_device_realize () #2 0x0000555555782b98 in device_set_realized () #3 0x00005555557ff23e in property_set_bool () #4 0x00005555558019e7 in object_property_set_qobject () #5 0x0000555555800600 in object_property_set_bool () #6 0x000055555570fb2f in qdev_device_add () #7 0x0000555555721b29 in device_init_func () #8 0x000055555588d92b in qemu_opts_foreach () #9 0x000055555561c9e8 in main () As above show, this bz has been reproduced. ====================== Verify: Version of components: qemu-kvm-rhev-2.1.2-8.el7.x86_64 host kernel and guest kernel version: 3.10.0-205.el7.x86_64 steps as comment 0: 1. boot guest with "-device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev socket,id=charchannel0,path=/tmp/serial-socket,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=com.redhat.rhevm.vdsm -chardev socket,path=/tmp/foo,server,nowait,id=foo -device virtconsole,chardev=foo,id=console0" e.g: # gdb --args /usr/libexec/qemu-kvm -m 2G -smp 2 -boot menu=on -drive file=/root/RHEL-7.1-20141111.0.qcow2,if=none,id=img,snapshot=on -device virtio-blk-pci,drive=img,id=sys-img,bootindex=1 -monitor stdio -qmp tcp::8888,server,nowait -spice port=5931,disable-ticketing -serial unix:/tmp/ttyS0,server,nowait -netdev tap,id=tap0,script=/etc/qemu-ifup,vhost=on -device virtio-net-pci,netdev=tap0,id=net0,mac=24:be:05:12:33:11,mq=on,bootindex=2 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x8 -chardev socket,id=charchannel0,path=/tmp/serial-socket,server,nowait -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel0,id=channel0,name=comredhat.rhevm.vdsm -chardev socket,path=/tmp/foo,server,nowait,id=foo -device virtconsole,chardev=foo,id=console0 virtserialport can works well inside guest, can transfer character correctly between guest and host. But can not use virtconsole device to transfer character. I just ref[1]'s method to do. BTW, will find 8 ports inside guest. # ls /dev/hvc* -l crw-------. 1 root root 229, 0 Nov 21 12:40 /dev/hvc0 crw-------. 1 root root 229, 1 Nov 21 12:40 /dev/hvc1 crw-------. 1 root root 229, 2 Nov 21 12:40 /dev/hvc2 crw-------. 1 root root 229, 3 Nov 21 12:40 /dev/hvc3 crw-------. 1 root root 229, 4 Nov 21 12:40 /dev/hvc4 crw-------. 1 root root 229, 5 Nov 21 12:40 /dev/hvc5 crw-------. 1 root root 229, 6 Nov 21 12:40 /dev/hvc6 crw-------. 1 root root 229, 7 Nov 21 12:40 /dev/hvc7 [1]fedoraproject.org/wiki/Features/VirtioSerial As above show, this bz seems has been verified(qemu-kvm won't core dump). Hi Miroslav, Could you give some explanation why QE can not use this virtconsole device inside guest? Thank you very much. Best Regards, Jun Li Can you give more details on what you did? cmdline in host as well as guest? virtconsole also isn't tested properly since not a lot of people use it. For purposes of this bug, though, there's no problem. (In reply to Amit Shah from comment #7) > Can you give more details on what you did? cmdline in host as well as > guest? virtconsole also isn't tested properly since not a lot of people use > it. > > For purposes of this bug, though, there's no problem. Just do as the following url show: http://fedoraproject.org/wiki/Features/VirtioSerial Inside guest side: # agetty /dev/hvc0 9600 vt100 On the host side: $ socat /tmp/foo - Guest and host can not communicate via above port hvc0. I also test with (hvc1/hvc2/.../hvc7), they can not communicate, too. ------ Another issue is: I will find 8 ports inside guest, just like following: # ls /dev/hvc* -l crw-------. 1 root root 229, 0 Nov 21 12:40 /dev/hvc0 crw-------. 1 root root 229, 1 Nov 21 12:40 /dev/hvc1 crw-------. 1 root root 229, 2 Nov 21 12:40 /dev/hvc2 crw-------. 1 root root 229, 3 Nov 21 12:40 /dev/hvc3 crw-------. 1 root root 229, 4 Nov 21 12:40 /dev/hvc4 crw-------. 1 root root 229, 5 Nov 21 12:40 /dev/hvc5 crw-------. 1 root root 229, 6 Nov 21 12:40 /dev/hvc6 crw-------. 1 root root 229, 7 Nov 21 12:40 /dev/hvc7 But I only add one console device in qemu-kvm command line. Could you give some explanations about this? Hi Amit, Would you please have a look? It's new bz? Best Regards, Junyi It could be for several reasons (including bad config), but separate from this BZ so let's open a new one and examine the failures in the new bz. (In reply to Amit Shah from comment #11) > It could be for several reasons (including bad config), but separate from > this BZ so let's open a new one and examine the failures in the new bz. Thanks Amit, I have filed a new bug to trace this issue(bz1168115). But based on comment 6, this bz has been verified. 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/RHSA-2015-0624.html |