Bug 748689 - calling get_node_cpu_stats() return errors:code: 1, message: internal error nparams too large
calling get_node_cpu_stats() return errors:code: 1, message: internal error n...
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: perl-Sys-Virt (Show other bugs)
All Linux
medium Severity medium
: rc
: ---
Assigned To: Daniel Berrange
Virtualization Bugs
Depends On:
  Show dependency treegraph
Reported: 2011-10-25 00:05 EDT by Gunannan Ren
Modified: 2012-06-20 08:00 EDT (History)
10 users (show)

See Also:
Fixed In Version: perl-Sys-Virt-0.9.9-1.el6
Doc Type: Bug Fix
Doc Text:
No technical notes required
Story Points: ---
Clone Of:
Last Closed: 2012-06-20 08:00:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Gunannan Ren 2011-10-25 00:05:47 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:

use strict;
use warnings;

use Sys::Virt;

my $con = Sys::Virt->new(address => "qemu:///system", readonly => 0);

Version-Release number of selected component (if applicable):

How reproducible:


Steps to Reproduce:
1. run the above perl codes.
Actual results:
report error message.

Expected results:
return correct node cpu stats.

Additional info:
Comment 1 Gunannan Ren 2011-10-25 00:09:12 EDT
perl-Sys-Virt and libvirt version:

Comment 3 Gunannan Ren 2011-10-25 02:20:53 EDT
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.
Comment 4 Alex Jia 2011-10-25 03:41:58 EDT
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. 

Comment 5 Alex Jia 2011-10-25 04:16:46 EDT
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.

Comment 8 Daniel Berrange 2012-01-09 11:46:10 EST
I can't reproduce this problem. Can you confirm that you still see an error when testing this with libvirt 0.9.9 ?
Comment 9 Alex Jia 2012-01-09 22:01:39 EST
perl-Sys-Virt-0.9.9-1 is okay for me.
Comment 10 Gunannan Ren 2012-01-10 03:04:25 EST
It's ok, The bug has been verified on
Comment 12 Daniel Berrange 2012-05-01 05:05:20 EDT
    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.
    New Contents:
No technical notes required
Comment 14 errata-xmlrpc 2012-06-20 08:00:45 EDT
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.


Note You need to log in before you can comment on or make changes to this bug.