[libvirt] [PATCH] virsh: Use old API if remote libvirtd does not support new

Eric Blake eblake at redhat.com
Wed Sep 14 18:12:16 UTC 2011


On 09/14/2011 11:42 AM, Eric Blake wrote:
> I've confirmed that we have a regression :(. Talking to an 0.8.8 server
> gives VIR_ERR_NO_SUPPORT when issuing the "unknown procedure: 243"
> message; it is only 0.9.3 and newer where we switched to the new rpc
> handling where we get VIR_ERR_RPC instead. I'm looking into how best to
> repair this regression, so that clients need not check for VIR_ERR_RPC
> everywhere.

More info from gdb.  In both cases, I tested virsh client from latest 
libvirt.git, and had a breakpoint at virNetClientProgramDispatchError.

With 0.8.8 server, err looks like:

(gdb) p err
$5 = {code = 39, domain = 13, message = 0x657cb0, level = 2, dom = 0x0,
   str1 = 0x657de0, str2 = 0x0, str3 = 0x0, int1 = 0, int2 = 0, net = 0x0}

but with 0.9.4, it looks like:

(gdb) p err
$2 = {code = 39, domain = 7, message = 0x657d50, level = 2, dom = 0x0,
   str1 = 0x657e70, str2 = 0x657f90, str3 = 0x0, int1 = -1, int2 = -1,
   net = 0x0}

That difference in domain (VIR_FROM_REMOTE vs. VIR_FROM_RPC) is 
sufficient to bypass our rewriting rules later in the function which 
convert VIR_ERR_RPC back to VIR_ERR_NO_SUPPORT.

-- 
Eric Blake   eblake at redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org




More information about the libvir-list mailing list