[libvirt] [PATCH] virsh: use the same connection URI for reconnect

Roman Bogorodskiy bogorodskiy at gmail.com
Thu Apr 14 08:12:27 UTC 2016


  Martin Kletzander wrote:

> On Thu, Apr 14, 2016 at 10:23:04AM +0300, Roman Bogorodskiy wrote:
> >When for some reason virsh looses connection and then tries to
> >reconnection, it uses the default URI instead of the one that was used
> >for the previous connection it got disconnected from.
> >
> >In order to make it reconnect using the same URI, copy URI of the
> >current (disconnected) connection to vshControl 'connname' attribute.
> >---
> > tools/virsh.c | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> >diff --git a/tools/virsh.c b/tools/virsh.c
> >index 5a61189..07097aa 100644
> >--- a/tools/virsh.c
> >+++ b/tools/virsh.c
> >@@ -359,6 +359,14 @@ virshConnectionHandler(vshControl *ctl)
> > {
> >     virshControlPtr priv = ctl->privData;
> >
> >+    if (disconnected && priv->conn) {
> >+        if (!ctl->connname) {
> >+            char *uri = virConnectGetURI(priv->conn);
> >+            ctl->connname = vshStrdup(ctl, uri);
> 
> This would mean that next "connect" without parameters would connect to
> the new uri.  Is that how you were trying that?

Basically, the issue I'm trying to solve is that:

1. I start libvirtd, virsh to it like:

 sudo ./tools/virsh -d 1 -c "bhyve:///system?socket=/var/run/libvirt/libvirt-sock"

2. I do some stuff and then I need to terminate libvirtd to change
something. I do that and I get:

virsh # error: Disconnected from bhyve:///system?socket=/var/run/libvirt/libvirt-sock due to I/O error

3. I start the daemon again and in virsh I do something like  "list".
That's what I get:

virsh # list
error: Failed to reconnect to the hypervisor
error: no valid connection
error: Failed to connect socket to '/usr/local/var/run/libvirt/libvirt-sock': No such file or directory

virsh #

So it tries to use socket in /usr/local/var/run instead of just
/var/run and fails to connect. This is quite inconvenient.

Roman Bogorodskiy




More information about the libvir-list mailing list