[libvirt] [PATCH] Fix tracking of RPC messages wrt streams

Daniel Veillard veillard at redhat.com
Thu Sep 1 06:08:42 UTC 2011

On Wed, Aug 31, 2011 at 11:06:38AM -0600, Eric Blake wrote:
> On 08/31/2011 10:48 AM, Daniel P. Berrange wrote:
> >From: "Daniel P. Berrange"<berrange at redhat.com>
> >
> >Commit 2c85644b0b51fbe5b6244e6773531af29933a727 attempted to
> >fix a problem with tracking RPC messages from streams by doing
> >
> >-            if (msg->header.type == VIR_NET_REPLY) {
> >+            if (msg->header.type == VIR_NET_REPLY ||
> >+                (msg->header.type == VIR_NET_STREAM&&
> >+                 msg->header.status != VIR_NET_CONTINUE)) {
> >                  client->nrequests--;
> >
> >In other words any stream packet, with status NET_OK or NET_ERROR
> >would cause nrequests to be decremented. This is great if the
> >packet from from a synchronous virStreamFinish or virStreamAbort
> >API call, but wildly wrong if from a server initiated abort.
> >The latter resulted in 'nrequests' being decremented below zero.
> >This then causes all I/O for that client to be stopped.

  I think I experienced that on a migration which failed and after
that all virt-manager output was "frozen", all the UI worked but
it didn't ever managed to refresh the status of the domains.


Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel at veillard.com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

More information about the libvir-list mailing list