Bug 1177584

Summary: libvirt should check the duplicate port for serial/channel devices
Product: Red Hat Enterprise Linux 7 Reporter: Song Wang <sowang>
Component: libvirtAssignee: Ján Tomko <jtomko>
Status: CLOSED DUPLICATE QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.1CC: dyuan, jiahu, jmiao, jtomko, mzhan, rbalakri
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-03-02 14:49:01 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 Song Wang 2014-12-29 08:30:27 UTC
Description of problem:
libvirt should check the duplicate port for serial/channel devices

Version-Release number of selected component (if applicable):
qemu-kvm-1.5.3-84.el7.x86_64
libvirt-1.2.8-11.el7.x86_64
kernel-3.10.0-219.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1.[root@localhost songwang]# virsh list --all
 Id    Name                           State
----------------------------------------------------
 -     aa                             shut off

2. virsh dumpxml aa
.....
<serial type='pty'>
      <target port='0'/>
    </serial>
    <serial type='pty'>
      <target port='1'/>
    </serial>
    <serial type='pty'>
      <target port='2'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='2'/>
    </channel>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='3'/>
    </channel>
.......

3.add these to xml.
 <serial type='pty'>
      <target port='1'/>
    </serial>
 <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>

4.[root@localhost songwang]# virsh edit aa            
Domain aa XML configuration edited.               

5.#virsh dumpxml aa
....
<serial type='pty'>
      <target port='0'/>
    </serial>
    <serial type='pty'>
      <target port='1'/>
    </serial>
    <serial type='pty'>
      <target port='2'/>
    </serial>
    <serial type='pty'>
      <target port='1'/>
    </serial>
    <console type='pty'>
      <target type='serial' port='0'/>
    </console>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='2'/>
    </channel>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='3'/>
    </channel>
    <channel type='pty'>
      <target type='virtio'/>
      <address type='virtio-serial' controller='0' bus='0' port='1'/>
    </channel>
......

6.[root@localhost songwang]# virsh start aa
error: Failed to start domain aa
error: internal error: process exited while connecting to monitor: 2014-12-29T08:26:21.233643Z qemu-kvm: -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel3,id=channel3,name=com.redhat.spice.0: virtio-serial-bus: A port already exists at id 1
2014-12-29T08:26:21.233676Z qemu-kvm: -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel3,id=channel3,name=com.redhat.spice.0: Device initialization failed.
2014-12-29T08:26:21.233686Z qemu-kvm: -device virtserialport,bus=virtio-serial0.0,nr=1,chardev=charchannel3,id=channel3,name=com.redhat.spice.0: Device 'virtserialport' could not be initialized



Actual results:
As steps ,libvirt doesn't check the duplicate port.

Expected results:
fix it

Comment 2 Ján Tomko 2015-03-02 14:49:01 UTC

*** This bug has been marked as a duplicate of bug 890606 ***