Red Hat Bugzilla – Bug 1316384
libvirt report wrong error when parse vcpupin info
Last modified: 2016-11-03 14:39:09 EDT
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
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
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
This bug was accidentally moved from POST to MODIFIED via an error in automation, please see mmccune@redhat.com with any questions
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
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