Red Hat Bugzilla – Bug 748689
calling get_node_cpu_stats() return errors:code: 1, message: internal error nparams too large
Last modified: 2012-06-20 08:00:45 EDT
Description of problem:
Calling get_node_cpu_stats binding function returns error message, but not to virsh command. Errors as follows:
libvirt error code: 1, message: internal error nparams too large
The producing codes:
my $con = Sys::Virt->new(address => "qemu:///system", readonly => 0);
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. run the above perl codes.
report error message.
return correct node cpu stats.
perl-Sys-Virt and libvirt version:
When I test get_node_memory_stats(), the error message is the same.
"libvirt error code: 1, message: internal error nparams too large"
So update a comment for this.
It should be a libvirt issue, libvirt defines the following $macro in remote_protocol.h, and when nparams > $macro, we will meet previous errors:
./src/remote/remote_protocol.h:55:#define REMOTE_NODE_CPU_STATS_MAX 16
./src/remote/remote_protocol.h:56:#define REMOTE_NODE_MEMORY_STATS_MAX 16
./src/remote/remote_protocol.h:61:#define REMOTE_DOMAIN_MEMORY_STATS_MAX 1024
length '16' is too small, maybe, we should change the above '16' to '1024' like REMOTE_DOMAIN_MEMORY_STATS_MAX.
I just saw libvirt and perl-sys-virt codes again, as the value of @nparams is dynamic, call the API setting @nparams to 0 and @params as NULL, in other words, $con->get_node_cpu_stats() should give a default @nparams as 0 and @params as NULL like funciton cmdNodeCpuStats in tools/virsh.c.
Mybe, libvirt should do these work rather than pushing them to upper layer application such as virsh command, perl or python binding, otherwise, each application both need to add some check function or pass some default values.
I can't reproduce this problem. Can you confirm that you still see an error when testing this with libvirt 0.9.9 ?
perl-Sys-Virt-0.9.9-1 is okay for me.
It's ok, The bug has been verified on
Technical note added. If any revisions are required, please edit the "Technical Notes" field
accordingly. All revisions will be proofread by the Engineering Content Services team.
No technical notes required
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.