Bug 1316384 - libvirt report wrong error when parse vcpupin info
libvirt report wrong error when parse vcpupin info
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt (Show other bugs)
7.2
x86_64 Linux
medium Severity medium
: rc
: ---
Assigned To: Peter Krempa
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2016-03-10 01:54 EST by Luyao Huang
Modified: 2016-11-03 14:39 EDT (History)
3 users (show)

See Also:
Fixed In Version: libvirt-1.3.3-1.el7
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2016-11-03 14:39:09 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Luyao Huang 2016-03-10 01:54:06 EST
Description of problem:
libvirt report wrong error when parse vcpupin info

Version-Release number of selected component (if applicable):
libvirt-1.3.2-1.el7.x86_64

How reproducible:
100%

Steps to Reproduce:
1. prepare a guest:
# virsh dumpxml rhel7.0-rhel

  <vcpu placement='static' current='3'>4</vcpu>

2. try to add vcpupin for vcpu 4 (should not exist here)
# virsh edit rhel7.0-rhel

  <vcpu placement='static' current='3'>4</vcpu>
+  <cputune>
+    <vcpupin vcpu='4' cpuset='1'/>
+  </cputune>

3.save this will get error:

# virsh edit rhel7.0-rhel
error: internal error: duplicate vcpupin for vcpu '4'
Failed. Try again? [y,n,i,f,?]: 


Actual results:
vcpupin vcpu number < maxvcpunumber  OK
vcpupin vcpu number = maxvcpunumber  strange error
vcpupin vcpu number > maxvcpunumber  config disappear (expect)

Expected results:

vcpupin vcpu number < maxvcpunumber  OK
vcpupin vcpu number >= maxvcpunumber  config disappear (expect)

Additional info:

I guess this is a boundary program
Comment 1 Luyao Huang 2016-03-10 02:16:09 EST
Sorry, i found i filled to wrong place, it should be a bug on upstream.

and it should be a upstream libvirt bug.

# git describe 
v1.3.2-98-gadefc56
Comment 3 Peter Krempa 2016-03-10 08:04:34 EST
Fixed upstream:

commit 8c7b7c4b0bb0d58dfb2e3dcdf1855a7dc9c858d0
Author: Peter Krempa <pkrempa@redhat.com>
Date:   Thu Mar 10 09:46:53 2016 +0100

    conf: Fix off-by-one in virDomainDefGetVcpu
    
    Cpus are indexed starting from '0' so the check was invalid.
    
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1316384
    Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1316420

v1.3.2-101-g8c7b7c4
Comment 4 Mike McCune 2016-03-28 19:19:36 EDT
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune@redhat.com with any questions
Comment 6 Jingjing Shao 2016-08-09 01:50:34 EDT
Verify this bug as below

# rpm -q libvirt
libvirt-2.0.0-3.el7.x86_64

# virsh dumpxml r7.1
<vcpu placement='static' current='3'>4</vcpu>

(1)
vcpupin vcpu number < maxvcpunumber
add xml info as below to the guest xml
  <cputune>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>

# virsh dumpxml  r7.2 | grep vcpu -A 4
  <vcpu placement='static' current='3'>4</vcpu>
  <cputune>
    <vcpupin vcpu='3' cpuset='3'/>
  </cputune>

(2)vcpupin vcpu number = maxvcpunumber
add xml info as below to the guest xml
  <cputune>
    <vcpupin vcpu='4' cpuset='3'/>
  </cputune>


# virsh dumpxml  r7.2 | grep vcpu -A 4
  <vcpu placement='static' current='3'>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.2.0'>hvm</type>
    <boot dev='hd'/>
  </os>

(3)vcpupin vcpu number > maxvcpunumber
add xml info as below to the guest xml
   <cputune>
    <vcpupin vcpu='5' cpuset='3'/>
  </cputune>

# virsh dumpxml  r7.2 | grep vcpu -A 4
  <vcpu placement='static' current='3'>4</vcpu>
  <os>
    <type arch='x86_64' machine='pc-i440fx-rhel7.2.0'>hvm</type>
    <boot dev='hd'/>
  </os>

The results are as expect. so change the status to verified
Comment 8 errata-xmlrpc 2016-11-03 14:39:09 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.

https://rhn.redhat.com/errata/RHSA-2016-2577.html

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