Bug 1235116

Summary: guest will have broken settings if we set a zero priority and scheduler is fifo or rr in iothreadsched element
Product: Red Hat Enterprise Linux 7 Reporter: Luyao Huang <lhuang>
Component: libvirtAssignee: John Ferlan <jferlan>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: 7.2CC: dyuan, honzhang, mzhan, rbalakri
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: libvirt-1.2.17-1.el7 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-19 06:41:52 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Luyao Huang 2015-06-24 03:35:05 UTC
Description of problem:
guest will have broken settings if we set a zero priority and scheduler is fifo or rr in iothreadsched element, which will make guest disappear after restart libvirtd

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

How reproducible:
100%

Steps to Reproduce:
1. edit domain xml like this:
# virsh edit test4

  <cputune>
    <vcpusched vcpus='0-2,4' scheduler='fifo' priority='0'/>
    <iothreadsched iothreads='1-2' scheduler='rr' priority='0'/>
  </cputune>

2. recheck the xml 
# virsh dumpxml test4

  <cputune>
    <vcpusched vcpus='0-2,4' scheduler='fifo'/>
    <iothreadsched iothreads='1-2' scheduler='rr'/>
  </cputune>

3. restart libvirtd
# service libvirtd restart
Redirecting to /bin/systemctl restart  libvirtd.service

# virsh dumpxml test4
error: failed to get domain 'test4'
error: Domain not found: no domain with matching name 'test4'


Actual results:
libvirt generate a invalid guest xml in step 1

Expected results:
still can find the priority in step 2 when we check the xml, this also can avoid generate the broken settings

Additional info:

Comment 1 Luyao Huang 2015-06-24 07:38:08 UTC
Send a patch to upstream:

https://www.redhat.com/archives/libvir-list/2015-June/msg01190.html

Comment 2 John Ferlan 2015-06-26 10:48:52 UTC
Patch was pushed 

commit 786539d6bf5ff841e00c9a538fcf77c65c5c8fab
Author: Luyao Huang <lhuang>
Date:   Wed Jun 24 12:00:36 2015 +0800

    conf: Format scheduler priority when it is zero
    
    https://bugzilla.redhat.com/show_bug.cgi?id=1235116
    
    According to our XML definition, zero is as valid as any other value.
    Mainly because it should be kernel-agnostic.
    
    Signed-off-by: Luyao Huang <lhuang>

$ git describe 786539d6bf5ff841e00c9a538fcf77c65c5c8fab
v1.2.16-315-g786539d

Comment 4 hongming 2015-07-20 09:16:35 UTC
Verify it as follows. The result is expected. Move its status to VERIFIED.

# rpm -q libvirt
libvirt-1.2.17-1.el7.x86_64

# virsh start rhel7.0
Domain rhel7.0 started

# virsh edit rhel7.0
Domain rhel7.0 XML configuration edited.

# service libvirtd restart
Redirecting to /bin/systemctl restart  libvirtd.service

# virsh list
 Id    Name                           State
----------------------------------------------------
 26    rhel7.0                        running

# virsh dumpxml rhel7.0 --inactive |grep /cputune -B3
  <cputune>
    <vcpusched vcpus='0-2,4' scheduler='fifo' priority='0'/>
    <iothreadsched iothreads='1-2' scheduler='rr' priority='0'/>
  </cputune>

# virsh destroy rhel7.0
Domain rhel7.0 destroyed

# virsh start rhel7.0
error: Failed to start domain rhel7.0
error: unsupported configuration: Scheduler priority 0 out of range [1, 99]

Comment 6 errata-xmlrpc 2015-11-19 06:41:52 UTC
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/RHBA-2015-2202.html