]> xenbits.xensource.com Git - libvirt.git/commitdiff
Add explicit warning messages when failing to serialize to XDR
authorDaniel P. Berrange <berrange@redhat.com>
Tue, 17 Aug 2010 14:23:27 +0000 (10:23 -0400)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 24 Aug 2010 13:19:01 +0000 (14:19 +0100)
When libvirtd fails to serialize a message to XDR the client
connection is terminated immediately. To enable this to be
diagnosed, log the message which caused the problem on the
server

* daemon/dispatch.c: Log XDR serialization failures

daemon/dispatch.c

index 302829836b380d3c5e00451350e03970a95830b0..da810e2241ceb4f10b0e6526a31735e8f938392f 100644 (file)
@@ -198,6 +198,8 @@ remoteSerializeError(struct qemud_client *client,
     return 0;
 
 xdr_error:
+    VIR_WARN("Failed to serialize remote error '%s' as XDR",
+             rerr->message ? *rerr->message : "<unknown>");
     xdr_destroy(&xdr);
     VIR_FREE(msg);
 fatal_error:
@@ -602,6 +604,8 @@ xdr_error:
     xdr_free (data->ret_filter, (char*)&ret);
     xdr_destroy (&xdr);
 fatal_error:
+    VIR_WARN("Failed to serialize reply for program '%d' proc '%d' as XDR",
+             msg->hdr.prog, msg->hdr.proc);
     return -1;
 }
 
@@ -685,5 +689,7 @@ xdr_error:
     xdr_destroy (&xdr);
 fatal_error:
     VIR_FREE(msg);
+    VIR_WARN("Failed to serialize stream data for proc %d as XDR",
+             stream->procedure);
     return -1;
 }