[libvirt] Bugfix for failing to reconnect to vbox:///session

Daniel P. Berrange berrange at redhat.com
Wed Jul 22 16:13:42 UTC 2009


On Mon, Jul 20, 2009 at 10:04:31AM +0200, Pritesh Kothari wrote:
> > I don't think this is quite correct. We call VBoxCGlueInit()
> > in the vboxRegister() function, which is run when libvirt first
> > initializes the whole library.
> >
> > The real bug is the vboxClose() method which calls vboxUninitialize()
> > which is then calling VBoxCGlueTerm(). So if you have many virConectPtr
> > objects open, the first one you call virConnectClose on will
> > shutdown the entire vbox library, breaking all the other virConnectPtr
> > instances you have active.
> >
> > IMHO, we should simply delete VBoxCGlueTerm() completely.
> 
> Right the VBoxCGlueTerm() is causing the whole problem.
> Resending the patch with changes as suggested above.


> diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c
> index 74c432e..42c5477 100644
> --- a/src/vbox/vbox_tmpl.c
> +++ b/src/vbox/vbox_tmpl.c
> @@ -310,6 +310,7 @@ no_memory:
>  }
>  
>  static int vboxInitialize(virConnectPtr conn, vboxGlobalData *data) {
> +
>      /* Get the API table for out version, g_pVBoxFuncs is for the oldest
>         version of the API that we support so we cannot use that. */
>      data->pFuncs = g_pfnGetFunctions(VBOX_XPCOMC_VERSION);
> @@ -398,7 +399,6 @@ static void vboxUninitialize(vboxGlobalData *data) {
>  
>      if (data->pFuncs)
>          data->pFuncs->pfnComUninitialize();
> -    VBoxCGlueTerm();
>  
>      virDomainObjListFree(&data->domains);
>      virCapabilitiesFree(data->caps);


ACK


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.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