Bug 1455510
Summary: | libvirtd crashed when set blkdeviotune groupname together with some other parameters | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Fangge Jin <fjin> | ||||
Component: | libvirt | Assignee: | Peter Krempa <pkrempa> | ||||
Status: | CLOSED ERRATA | QA Contact: | jiyan <jiyan> | ||||
Severity: | high | Docs Contact: | |||||
Priority: | high | ||||||
Version: | 7.4 | CC: | dyuan, dzheng, lmen, pkrempa, pzhang, rbalakri, xuzhang, yanqzhan, yisun, zpeng | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | libvirt-3.2.0-7.el7 | Doc Type: | If docs needed, set a value | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2017-08-02 01:34:35 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: | |||||||
Attachments: |
|
Fixed upstream: commit 0d3aff58e7ed190c97b40ee92f58cb0180cef6fe Author: Peter Krempa <pkrempa> Date: Thu May 25 13:09:36 2017 +0200 qemu: Use correct variable in qemuDomainSetBlockIoTune 'param' contains the correct element from 'params'. If the group name would not be the first parameter libvirtd would crash. Introduced in c53bd25b13. Version-Release number of selected component: libvirt-3.2.0-7.el7.x86_64 qemu-kvm-rhev-2.9.0-7.el7.x86_64 Kernel-3.10.0-675.el7.x86_64 Steps to verify: Note: refer to the bug https://bugzilla.redhat.com/show_bug.cgi?id=1433180 1.set the 'group-name' alone and confirm it will not work # virsh blkdeviotune cow vda --group-name group1;virsh blkdeviotune cow vda total_bytes_sec: 0 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 0 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : total_bytes_sec_max_length: 0 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 2.set the 'total-bytes-sec' alone and confirm the value of'group-name' will be filled automatically # virsh blkdeviotune cow vda --total-bytes-sec 2000; virsh blkdeviotune cow vda total_bytes_sec: 2000 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 200 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : drive-virtio-disk0 total_bytes_sec_max_length: 1 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 3.set the value of 'total-bytes-sec' as 0 and confirm value of 'group-name' will disappears # virsh blkdeviotune cow vda --total-bytes-sec 0; virsh blkdeviotune cow vda total_bytes_sec: 0 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 0 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : total_bytes_sec_max_length: 0 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 4.set 'group-name' with 'total-bytes-sec',confirm the libvirtd will not crash and setting works # virsh blkdeviotune cow vda --group-name group1 --total-bytes-sec 2000;virsh blkdeviotune cow vda total_bytes_sec: 2000 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 200 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : group1 total_bytes_sec_max_length: 1 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 # virsh blkdeviotune cow vda --group-name group1 --total-bytes-sec 0; virsh blkdeviotune cow vda total_bytes_sec: 0 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 0 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : total_bytes_sec_max_length: 0 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 # virsh blkdeviotune cow vda --total-bytes-sec 2000 --group-name group1;virsh blkdeviotune cow vda total_bytes_sec: 2000 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 200 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : group1 total_bytes_sec_max_length: 1 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0 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://access.redhat.com/errata/RHEA-2017:1846 |
Created attachment 1282230 [details] libvirtd backtrace Description of problem: libvirtd crashed when set blkdeviotune groupname together with some other parameters Version-Release number of selected component (if applicable): libvirt-3.2.0-6.virtcov.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.# virsh blkdeviotune vm2 vda --group-name ffff --total-bytes-sec 2000 error: Disconnected from qemu:///system due to I/O error error: Unable to change block I/O throttle error: End of file while reading data: Input/output error Actual results: libvirtd crash Expected results: No crash Additional info: When set the parameters separately, it works well: # virsh blkdeviotune vm2 vda --group-name ffff # virsh blkdeviotune vm2 vda --total-bytes-sec 2000 # virsh blkdeviotune vm2 vda total_bytes_sec: 2000 read_bytes_sec : 0 write_bytes_sec: 0 total_iops_sec : 0 read_iops_sec : 0 write_iops_sec : 0 total_bytes_sec_max: 0 read_bytes_sec_max: 0 write_bytes_sec_max: 0 total_iops_sec_max: 0 read_iops_sec_max: 0 write_iops_sec_max: 0 size_iops_sec : 0 group_name : ffff total_bytes_sec_max_length: 0 read_bytes_sec_max_length: 0 write_bytes_sec_max_length: 0 total_iops_sec_max_length: 0 read_iops_sec_max_length: 0 write_iops_sec_max_length: 0