On 09/13/2011 09:16 AM, Peter Krempa wrote:
Commit ffe28ab74b821c916ec4ba8efb5c992454e4bd24 introduced regression while comunicating with older libvirtd command 'domblkstat' used the new API and did not check for VIR_ERR_RPC error code signalling the remote server does not support this API and did not fall back to older API. Thereafter 'domblkstat' ended with "error: unknown procedure: 243". ---
ACK.
footnote: Will not apply along with: [PATCH v5] virsh: Add more human-friendly output of domblkstat command as that path does fix this bug.
Apply this first, then rebase that patch into a v6. Then the human-friendly patch is separate, rather than pushing two fixes in one patch (that is, upstream should have two patches, while for back-porting purposes, it might make sense to backport just this).
tools/virsh.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/tools/virsh.c b/tools/virsh.c index 3b060bf..430168c 100644 --- a/tools/virsh.c +++ b/tools/virsh.c @@ -1090,7 +1090,8 @@ cmdDomblkstat (vshControl *ctl, const vshCmd *cmd) * then. */ if (rc< 0) { - if (last_error->code != VIR_ERR_NO_SUPPORT) { + if (last_error->code != VIR_ERR_NO_SUPPORT&& + last_error->code != VIR_ERR_RPC) {
Hmm, I wonder if any of my recent snapshot patches also need to check for VIR_ERR_RPC (for example, see cmdUndefine, which checks for VIR_ERR_NO_SUPPORT but not VIR_ERR_RPC). Yep, I'm starting to convince myself that they do - if you have a new client talking to a pre-0.8.0 server, then virDomainSnapshotNum would fail with VIR_ERR_RPC rather than VIR_ERR_NO_SUPPORT.
Or, maybe this means that we have a bug in our RPC code - when the local side gets VIR_ERR_RPC from the remote side due to unknown rpc number, should the local side be translating that into VIR_ERR_NO_SUPPORT instead of passing it back to the user as VIR_ERR_RPC? But only for unknown rpc numbers; for other rpc errors, VIR_ERR_RPC still makes sense.
-- Eric Blake eblake@xxxxxxxxxx +1-801-349-2682 Libvirt virtualization library http://libvirt.org -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list