Bug 800734 - Error prompt when calling $dom->set_blkio_parameters API
Error prompt when calling $dom->set_blkio_parameters API
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: perl-Sys-Virt (Show other bugs)
6.3
x86_64 Linux
medium Severity medium
: rc
: ---
Assigned To: Daniel Berrange
Virtualization Bugs
:
Depends On: 804028
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-07 00:47 EST by xhu
Modified: 2012-06-20 08:00 EDT (History)
6 users (show)

See Also:
Fixed In Version: perl-Sys-Virt-0.9.10-3.el6
Doc Type: Bug Fix
Doc Text:
Cause The Perl API bindings did not handle tunable parameters in string format Consequence It was not possible to read/update the block I/O tunable parameters Fix Support for string parameters was implemented Result The block I/O tunable parameters can be read/updated from the Perl API.
Story Points: ---
Clone Of:
: 804028 (view as bug list)
Environment:
Last Closed: 2012-06-20 08:00:57 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
patch for the issue. (1.65 KB, patch)
2012-03-07 02:22 EST, Alex Jia
no flags Details | Diff

  None (edit)
Description xhu 2012-03-07 00:47:20 EST
Description of problem:


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


How reproducible:
everytimes

Steps to Reproduce:
Make sure you have a running guest named "vr-rhel6-x86_64-kvm"
1. prepare set_blkio.pl as follows:
# cat set_blkio.pl 
#!/usr/bin/perl
use warnings;
use strict;
use Sys::Virt;

my $uri = "qemu:///system";
my $domname = "vr-rhel6-x86_64-kvm";
my $flags = 0;

my $con = Sys::Virt->new(address => $uri, readonly => 0);
my $dom = $con->get_domain_by_name($domname);
my $weight = 600;

my %blkio = (Sys::Virt::Domain::BLKIO_WEIGHT => $weight);
$dom->set_blkio_parameters(\%blkio);

2. Run set_blkio.pl:
# perl set_blkio.pl 
libvirt error code: 8, message: invalid argument: unable to parse
  
Actual results:
After step 2, error prompt

Expected results:
should set blkio weight successfully.

Additional info:
Comment 1 Alex Jia 2012-03-07 02:18:40 EST
Hi Daniel,
It may be a common issues, the set_block_iotune(), set_interface_parameters() and set_numa_parameters() probably have similar issues. For set_blkio_parameters(), the argument device_weight is a string type, however, the vir_typed_param_from_hv() and vir_typed_param_to_hv() are missing 'case VIR_TYPED_PARAM_STRING' branch and related handling.

In addition, in set_blkio_parameters(), the vir_typed_param_from_hv(newparams, params, nparams) will return a newparams reference, but the virDomainSetBlkioParameters(dom, params, nparams, 0) hasn't used it, I think the second parameter should be 'newparams' and need to covert data type to  virBlkioParameter/virTypedParameterPtr, unfortunately, it doesn't work for me, it seems I gave a error data type, the attachment is my patch, please help see this issue.


Regards & Thanks,
Alex
Comment 2 Alex Jia 2012-03-07 02:22:18 EST
Created attachment 568174 [details]
patch for the issue.
Comment 3 xhu 2012-03-07 02:51:17 EST
The component version are as follows:
perl-Sys-Virt-0.9.10-2.el6.x86_64
libvirt-0.9.10-4.el6.x86_64
qemu-kvm-0.12.1.2-2.234.el6.x86_64
Comment 4 Daniel Berrange 2012-03-16 07:13:05 EDT
Pushed a variant on Alex's patch upstream.

commit a9ab38ef284915198c34c375592534bd9598db4c
Author: Alex Jia <ajia@redhat.com>
Date:   Fri Mar 16 10:38:54 2012 +0000

    Add handling of VIR_TYPED_PARAM_STRING



This also requires bug 804028 in libvirt to be fixed, before re-testing
Comment 8 Daniel Berrange 2012-05-01 05:08:39 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:
Cause
    The Perl API bindings did not handle tunable parameters in string format
Consequence
    It was not possible to read/update the block I/O tunable parameters
Fix
    Support for string parameters was implemented
Result
    The block I/O tunable parameters can be read/updated from the Perl API.
Comment 10 errata-xmlrpc 2012-06-20 08:00:57 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.

http://rhn.redhat.com/errata/RHBA-2012-0754.html

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