[Libvir] bug with vnc port/display#

Vadim Zaliva lord at crocodile.org
Fri Apr 4 00:53:36 UTC 2008


I think I see a bug in libvirt. Here is step-by-step instructions how  
to reproduce:

1. Create domain from XML (note vnc port):

<domain type="xen">
<name>lvnc</name>
<os>
   <type>linux</type>
   <kernel>/boot/vmlinuz-2.6.15-1.43_FC5guest</kernel>
   <initrd>/boot/initrd-2.6.15-1.43_FC5guest.img</initrd>
   <root>/dev/sda1</root>
   <cmdline> ro selinux=0 3</cmdline>
</os>
<memory>10</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
   <graphics type="vnc" port="5905"/>
</devices>
</domain>

2. Examine s-expr definition:

sudo /usr/sbin/xm list -l lvnc
(domain
   (on_crash restart)
   (uuid 5c56456a-1f19-d996-35e3-f5e514b79601)
   (bootloader_args )
   (vcpus 1)
   (name lvnc)
   (on_poweroff destroy)
   (on_reboot restart)
   (bootloader )
   (maxmem 128)
   (memory 128)
   (shadow_memory 0)
   (features )
   (on_xend_start ignore)
   (on_xend_stop ignore)
   (image
       (linux
           (kernel /boot/vmlinuz-2.6.15-1.43_FC5guest)
           (ramdisk /boot/initrd-2.6.15-1.43_FC5guest.img)
           (args 'root=/dev/sda1  ro selinux=0 3')
           (device_model /usr/lib/xen/bin/qemu-dm)
       )
   )
   (status 0)
   (device (vkbd (uuid c1ea89ea-903c-ba5b-603d-7b5c7bc25654)))
   (device
       (vfb
           (type vnc)
           (vncdisplay 5)
           (uuid bc92b909-8ca3-eece-8ef5-7551eaccda6e)
       )
   )
)

So far, so good: vncdisplay 5

3. dumpxml lvnc
<domain type='xen' id='-1'>
<name>lvnc</name>
<uuid>5c56456a-1f19-d996-35e3-f5e514b79601</uuid>
<bootloader/>
<os>
   <type>linux</type>
   <kernel>/boot/vmlinuz-2.6.15-1.43_FC5guest</kernel>
   <initrd>/boot/initrd-2.6.15-1.43_FC5guest.img</initrd>
   <cmdline>root=/dev/sda1  ro selinux=0 3</cmdline>
</os>
<memory>131072</memory>
<vcpu>1</vcpu>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>restart</on_crash>
<devices>
   <emulator>/usr/lib/xen/bin/qemu-dm</emulator>
   <input type='mouse' bus='xen'/>
   <graphics type='vnc' port='-1'/>
</devices>
</domain>

As you can see, port is now -1 instead of expected 5905.

Looks like the problem around 'vncunused' variable handling in  
xml_internal.c. (I
think it should be assigned 0 not 1 by default and if 'vncunused'  
config keyword
is not found.  I tried to fix it myself, but without much luck so far.

By the way, what would be a good way to do logging in libvirt code?

Sincerely,
Vadim

--
"La perfection est atteinte non quand il ne reste rien a ajouter, mais
quand il ne reste rien a enlever."  (Antoine de Saint-Exupery)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 1607 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20080403/2eb1b2f1/attachment-0001.p7s>


More information about the libvir-list mailing list