While running qemuhotplugtest, it was found that valgrind pointed out
the following memory leak:
==7906== 5 bytes in 1 blocks are definitely lost in loss record 7 of 121
==7906== at 0x4A069EE: malloc (vg_replace_malloc.c:270)
==7906== by 0x3E782A754D: xmlStrndup (in /usr/lib64/libxml2.so.2.7.6)
==7906== by 0x4CDAE03: virDomainDeviceInfoParseXML.isra.32 (domain_conf.c:3685)
==7906== by 0x4CE3BB9: virDomainNetDefParseXML (domain_conf.c:6707)
==7906== by 0x4CFBA08: virDomainDefParseXML (domain_conf.c:12235)
==7906== by 0x4CFBC1E: virDomainDefParseNode (domain_conf.c:13039)
==7906== by 0x4CFBD95: virDomainDefParse (domain_conf.c:12981)
==7906== by 0x41FEB4: testQemuHotplug (qemuhotplugtest.c:66)
==7906== by 0x420F41: virtTestRun (testutils.c:201)
==7906== by 0x41F287: mymain (qemuhotplugtest.c:422)
==7906== by 0x4216BD: virtTestMain (testutils.c:784)
==7906== by 0x3E6CE1ED1C: (below main) (libc-start.c:226)
...and 10 more.
Problem is, since
20745748 we do both, parse <alias/> elements from
XML files and call qemuAssignDeviceAliases(). While generating runtime
info for domain at runtime is just fine in the test, we can parse just
inactive XML and remove all <alias/>-es from the XML files.
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
driver.caps,
driver.xmlopt,
QEMU_EXPECTED_VIRT_TYPES,
- 0)))
+ VIR_DOMAIN_XML_INACTIVE)))
goto cleanup;
priv = (*vm)->privateData;
-<domain type='kvm' id='2'>
+<domain type='kvm'>
<name>f17</name>
<uuid>a1cd52eb-d37f-4717-fc6e-972f0774f4c9</uuid>
<memory unit='KiB'>1048576</memory>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/f17.qcow2'/>
<target dev='vda' bus='virtio'/>
- <alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/user/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
- <alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='ide' index='0'>
- <alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='usb' index='0'>
- <alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
- <controller type='pci' index='0' model='pci-root'>
- <alias name='pci.0'/>
- </controller>
+ <controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
- <alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
<interface type='network'>
<inbound average='4000' peak='8000' floor='200' burst='1024'/>
<outbound average='4000' peak='8000' burst='1024'/>
</bandwidth>
- <target dev='vnet0'/>
<model type='virtio'/>
- <alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
- <source path='/dev/pts/22'/>
<target type='isa-serial' port='0'/>
- <alias name='serial0'/>
</serial>
<serial type='pty'>
- <source path='/dev/pts/25'/>
<target port='0'/>
- <alias name='serial1'/>
</serial>
<serial type='tcp'>
<source mode='bind' host='0.0.0.0' service='2445'/>
<protocol type='raw'/>
<target port='1'/>
- <alias name='serial2'/>
</serial>
- <console type='pty' tty='/dev/pts/22'>
- <source path='/dev/pts/22'/>
+ <console type='pty'>
<target type='serial' port='0'/>
- <alias name='serial0'/>
</console>
<console type='pty'>
- <source path='/dev/pts/26'/>
<target type='virtio' port='1'/>
- <alias name='console1'/>
</console>
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/f17x86_64.agent'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
- <alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
- <input type='tablet' bus='usb'>
- <alias name='input0'/>
- </input>
+ <input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
- <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
+ <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<sound model='ich6'>
- <alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
- <alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
- <alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</memballoon>
</devices>
<console type='pty'>
<source path='/dev/pts/26'/>
<target type='virtio' port='1'/>
- <alias name='console1'/>
</console>
-<domain type='kvm' id='2'>
+<domain type='kvm'>
<name>f17</name>
<uuid>a1cd52eb-d37f-4717-fc6e-972f0774f4c9</uuid>
<memory unit='KiB'>1048576</memory>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/var/lib/libvirt/images/f17.qcow2'/>
<target dev='vda' bus='virtio'/>
- <alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/home/user/tmp/Fedora-17-x86_64-Live-KDE.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
- <alias name='ide0-1-0'/>
<address type='drive' controller='0' bus='1' target='0' unit='0'/>
</disk>
<controller type='ide' index='0'>
- <alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<controller type='usb' index='0'>
- <alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
- <controller type='pci' index='0' model='pci-root'>
- <alias name='pci.0'/>
- </controller>
+ <controller type='pci' index='0' model='pci-root'/>
<controller type='virtio-serial' index='0'>
- <alias name='virtio-serial0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x07' function='0x0'/>
</controller>
<interface type='network'>
<inbound average='4000' peak='8000' floor='200' burst='1024'/>
<outbound average='4000' peak='8000' burst='1024'/>
</bandwidth>
- <target dev='vnet0'/>
<model type='virtio'/>
- <alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<serial type='pty'>
- <source path='/dev/pts/22'/>
<target type='isa-serial' port='0'/>
- <alias name='serial0'/>
</serial>
<serial type='pty'>
- <source path='/dev/pts/25'/>
<target port='0'/>
- <alias name='serial1'/>
</serial>
<serial type='tcp'>
<source mode='bind' host='0.0.0.0' service='2445'/>
<protocol type='raw'/>
<target port='1'/>
- <alias name='serial2'/>
</serial>
- <console type='pty' tty='/dev/pts/22'>
- <source path='/dev/pts/22'/>
+ <console type='pty'>
<target type='serial' port='0'/>
- <alias name='serial0'/>
</console>
<channel type='unix'>
<source mode='bind' path='/var/lib/libvirt/qemu/f17x86_64.agent'/>
<target type='virtio' name='org.qemu.guest_agent.0'/>
- <alias name='channel0'/>
<address type='virtio-serial' controller='0' bus='0' port='1'/>
</channel>
- <input type='tablet' bus='usb'>
- <alias name='input0'/>
- </input>
+ <input type='tablet' bus='usb'/>
<input type='mouse' bus='ps2'/>
<input type='keyboard' bus='ps2'/>
- <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>
+ <graphics type='vnc' port='-1' autoport='yes' listen='0.0.0.0'>
<listen type='address' address='0.0.0.0'/>
</graphics>
<sound model='ich6'>
- <alias name='sound0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</sound>
<video>
<model type='cirrus' vram='9216' heads='1'/>
- <alias name='video0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</video>
<memballoon model='virtio'>
- <alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</memballoon>
</devices>