On Thu, Mar 10, 2016 at 05:53:56AM +0100, Martin Kletzander wrote: > virHashForEach() returns 0 if everything went ince, so our session > daemon was timing out even when there was a client connected. > > Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1315606 I have tested this patch extensively. It fixes a very obvious bug in libvirtd (see comments on the bug above). I have also added it to the Fedora 24 and Rawhide libvirt packages because the bug is so serious it needed fixing urgently. Therefore: ACK. Rich. > Signed-off-by: Martin Kletzander <mkletzan@xxxxxxxxxx> > --- > src/rpc/virnetdaemon.c | 14 +++++++++++--- > 1 file changed, 11 insertions(+), 3 deletions(-) > > diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c > index 8ddcd9baddc9..9181ad7c474b 100644 > --- a/src/rpc/virnetdaemon.c > +++ b/src/rpc/virnetdaemon.c > @@ -849,15 +849,23 @@ virNetDaemonClose(virNetDaemonPtr dmn) > static int > daemonServerHasClients(void *payload, > const void *key ATTRIBUTE_UNUSED, > - void *opaque ATTRIBUTE_UNUSED) > + void *opaque) > { > + bool *clients = opaque; > virNetServerPtr srv = payload; > > - return virNetServerHasClients(srv); > + if (virNetServerHasClients(srv)) > + *clients = true; > + > + return 0; > } > > bool > virNetDaemonHasClients(virNetDaemonPtr dmn) > { > - return virHashForEach(dmn->servers, daemonServerHasClients, NULL) > 0; > + bool ret = false; > + > + virHashForEach(dmn->servers, daemonServerHasClients, &ret); > + > + return ret; > } > -- > 2.7.2 > > -- > libvir-list mailing list > libvir-list@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/libvir-list -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-p2v converts physical machines to virtual machines. Boot with a live CD or over the network (PXE) and turn machines into KVM guests. http://libguestfs.org/virt-v2v -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list