[libvirt] race condtion in getting VNC port for libvirt

Daniel P. Berrange berrange at redhat.com
Tue Nov 9 13:47:00 UTC 2010


On Sun, Nov 07, 2010 at 08:53:32PM +0800, Guangya Liu wrote:
> Hi,
> 
>  
> 
> We are encountering a problem of race conditions for getting VNC port
> when VM start up.
> 
>  
> 
> In a very powerful hypervisor, if we try to start up more than 1 VM
> concurrently, then there might be some VMs failed to start up due to VNC
> port confilict.
> 
>  
> 
> We searched libvirt bugs and found that some one report the problem and
> we have give a fix, but the fix can not resolve the problem.
> 
>  
> 
> http://osdir.com/ml/libvir-list/2010-05/msg00530.html
>  
> https://build.opensuse.org/package/view_file?file=vnc-race-3.patch&packa
> ge=libvirt&project=Virtualization:openSUSE11.3

This patch is already merged in current GIT repos.

> The bitmap test-and-set operation is not atomic, so that there still is
> a time-window in which a VNC port could be reserved for two caller. 

The virBitmap APIs for getting & setting don't need to be atomic, because
they are only called when the QEMU driver mutex is held, which ensures
serialization of VM startup.

Regards,
Daniel
-- 
|: Red Hat, Engineering, London    -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org -o- http://virt-manager.org -o- http://deltacloud.org :|
|: http://autobuild.org        -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-   F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list