Bug 1052041
Summary: | Rubbish serial port device is generated once failed to hotplug a serial port | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Qunfang Zhang <qzhang> |
Component: | qemu-kvm-rhev | Assignee: | Amit Shah <amit.shah> |
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
Severity: | medium | Docs Contact: | |
Priority: | medium | ||
Version: | 7.0 | CC: | amit.shah, flang, hhuang, juzhang, mdeng, michen, mrezanin, qzhang, rbalakri, virt-maint |
Target Milestone: | rc | ||
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | qemu-kvm-rhev-2.1 | Doc Type: | Bug Fix |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2015-03-05 09:43:39 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
Qunfang Zhang
2014-01-13 07:44:03 UTC
Please see bug 1040334. This is a dup of that one, which is a dup of bug 1003773. However, the fix is in 1.5.3-23, and you're using a newer version (-31). Can you try with -23 to see if we regressed again? (In reply to Amit Shah from comment #2) > Please see bug 1040334. This is a dup of that one, which is a dup of bug > 1003773. However, the fix is in 1.5.3-23, and you're using a newer version > (-31). > > Can you try with -23 to see if we regressed again? Hi, Amit This bug could be reproduced on -23 as well. In bug 1040334, which has the same problem, Mike said build qemu-kvm-rhev-1.5.3-39.el7.x86_64 works fine for him. Can you confirm? Just tested on qemu-kvm-1.5.3-41.el7.x86_64, still have problem. CLI: /usr/libexec/qemu-kvm ...... -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=port2,bus=virtio-serial0.0,id=port2 (1) (qemu) info qtree dev: virtserialport, id "port2" chardev = channel2 nr = 2 name = "port2" port 2, guest off, host off, throttle off (2) Hot-plug port2 to channel2: {"execute":"device_add","arguments":{"driver":"virtserialport","bus":"virtio-serial0.0","chardev":"channel2","name":"port3","id":"port3"}} {"error": {"class": "GenericError", "desc": "Property 'virtserialport.chardev' can't take value 'channel2', it's in use"}} (qemu)info qtree dev: virtserialport, id "" chardev = <null> nr = 4294967295 name = "port3" port -1, guest off, host off, throttle off dev: virtserialport, id "port2" chardev = channel2 nr = 2 name = "port2" port 2, guest off, host off, throttle off (3) (qemu) device_del port3 (qemu) info qtree dev: virtserialport, id "p" chardev = <null> nr = 4294967295 name = "port3" port -1, guest off, host off, throttle off (4) re-hotplug port3 to channel2: {"execute":"device_add","arguments":{"driver":"virtserialport","bus":"virtio-serial0.0","chardev":"channel2","name":"port3","id":"port3"}} {"return": {}} (qemu) info qtree: type virtio-serial-bus dev: virtserialport, id "port3" chardev = channel2 nr = 2 name = "port3" port 2, guest off, host off, throttle off dev: virtserialport, id "port>" chardev = <null> nr = 4294967295 name = "port3" port -1, guest off, host off, throttle off Hi, Amit I just confirmed qemu-kvm-rhev-1.5.3-39.el7.x86_64 still have the problem. Thanks. The difference between this bug steps and bcao's bug 1040334: <qzhang> amit, bcao hotplugs a virtserialport with nr=0, first time failed and "info qtree" is normal, the second time succeeds but "info qtree" shows a weird input for that port. My issue is hot-plug a port the first time to make it fail (eg, to an in-use chardev), there's a weird data in the "info qtree" output. <amit> qzhang: so you're using an invalid chardev the first time itself, whereas bcao uses a valid one <amit> qzhang: (invalid I mean one that cannot be used) <qzhang> amit, yes~ Can't reproduce this upstream: ./x86_64-softmmu/qemu-system-x86_64 -m 512 -cpu host -enable-kvm -device virtio-serial-pci -chardev socket,id=channel2,path=/var/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=port2,id=port2 -monitor stdio (qemu) device_add virtserialport,id=port3,chardev=channel2,name=port3 Property 'virtserialport.chardev' can't take value 'channel2', it's in use (qemu) info qtree <snip> dev: virtio-serial-pci, id "" ioeventfd = true vectors = 2 (0x2) class = 1920 (0x780) indirect_desc = true event_idx = true max_ports = 31 (0x1f) addr = 04.0 romfile = "" rombar = 1 (0x1) multifunction = false command_serr_enable = true class Class 0780, addr 00:04.0, pci id 1af4:1003 (sub 1af4:0003) bar 0: i/o at 0xc040 [0xc05f] bar 1: mem at 0xfebf1000 [0xfebf1fff] bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 (0x1f) bus: virtio-serial-bus.0 type virtio-serial-bus dev: virtserialport, id "port2" chardev = "channel2" nr = 1 (0x1) name = "port2" port 1, guest off, host off, throttle off <snip> (qemu) device_del port2 (qemu) device_add virtserialport,id=port3,chardev=channel2,name=port3 (qemu) info qtree <snip> dev: virtio-serial-pci, id "" ioeventfd = true vectors = 2 (0x2) class = 1920 (0x780) indirect_desc = true event_idx = true max_ports = 31 (0x1f) addr = 04.0 romfile = "" rombar = 1 (0x1) multifunction = false command_serr_enable = true class Class 0780, addr 00:04.0, pci id 1af4:1003 (sub 1af4:0003) bar 0: i/o at 0xc040 [0xc05f] bar 1: mem at 0xfebf1000 [0xfebf1fff] bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 (0x1f) bus: virtio-serial-bus.0 type virtio-serial-bus dev: virtserialport, id "port3" chardev = "channel2" nr = 1 (0x1) name = "port3" port 1, guest off, host off, throttle off <snip> Reproduce this bug as follow version: Host: # uname -r 3.10.0-144.el7.x86_64 qemu-kvm-rhev-1.5.3-30.el7.x86_64 Steps: 1.Boot guest with ...-vga std -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=port2,bus=virtio-serial0.0,id=port2 ... 2. Hotplug a port2 on chardev "channel2" {"execute":"device_add","arguments":{"driver":"virtserialport","bus":"virtio-serial0.0","chardev":"channel2","name":"port3","id":"port3"}} {"error": {"class": "GenericError", "desc": "Property 'virtserialport.chardev' can't take value 'channel2', it's in use"}} 3.(qemu) info qtree 4. Remove port2 and re-plug port3 {"execute":"device_del","arguments":{"id":"port2"}} {"timestamp": {"seconds": 1389598901, "microseconds": 373473}, "event": "DEVICE_DELETED", "data": {"device": "port2", "path": "/machine/peripheral/port2"}} {"return": {}} {"execute":"device_add","arguments":{"driver":"virtserialport","bus":"virtio-serial0.0","chardev":"channel2","name":"port3","id":"port3"}} {"return": {}} 5. (qemu) info qtree Results: after step 3 bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 bus: virtio-serial0.0 type virtio-serial-bus dev: virtserialport, id "`�_w�" chardev = <null> nr = 4294967295 name = "port3" port -1, guest off, host off, throttle off dev: virtserialport, id "port2" chardev = channel2 nr = 1 name = "port2" port 1, guest off, host off, throttle off after step 5 bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 bus: virtio-serial0.0 type virtio-serial-bus dev: virtserialport, id "port3" chardev = channel2 nr = 1 name = "port3" port 1, guest off, host off, throttle off dev: virtserialport, id "�������������������������������������������?" chardev = <null> nr = 4294967295 name = "port3" port -1, guest off, host off, throttle off Test on latest version: # uname -r 3.10.0-144.el7.x86_64 # rpm -q qemu-kvm-rhev qemu-kvm-rhev-2.1.0-3.el7.x86_64 Steps as same as reproduce Resutls: After step3 .. bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 (0x1f) bus: virtio-serial0.0 type virtio-serial-bus dev: virtserialport, id "port2" chardev = "channel2" nr = 1 (0x1) name = "port2" port 1, guest off, host off, throttle off .. After step5 ... bus: virtio-bus type virtio-pci-bus dev: virtio-serial-device, id "" max_ports = 31 (0x1f) bus: virtio-serial0.0 type virtio-serial-bus dev: virtserialport, id "port3" chardev = "channel2" nr = 1 (0x1) name = "port3" port 1, guest off, host off, throttle off .. According to above test ,this bug has been fixed. 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 |