Bug 1270709
| Summary: | Volume's allocation should be updated automatically while doing virsh vol-wipe | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | yafu <yafu> |
| Component: | libvirt | Assignee: | John Ferlan <jferlan> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 7.2 | CC: | dyuan, jdenemar, jferlan, rbalakri, yanyang, yisun, zpeng |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.3.1-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-03 18:25:53 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: | |||
Running a 'virsh vol-info' or 'virsh vol-list default --details' after the 'virsh vol-wipe' would 'reset' the internal view of the volume allocation. In any case, I've generated a patch upstream in order to refresh the volume (if there is a refreshVol backend API) after the wipe volume is successful. See: http://www.redhat.com/archives/libvir-list/2015-December/msg00085.html Initial patch review resulted in generation of a v2: http://www.redhat.com/archives/libvir-list/2015-December/msg00608.html which included some doc adjustments. After a bit of back and forth - the doc adjustments were removed. Patch has been pushed: $ git describe 80ca86e54d101508ba6f3c5affc420d946810331 CVE-2015-5313-36-g80ca86e $ version:libvirt-1.3.1-1.el7.x86_64 Verified and PASSED. steps: 1. # virsh vol-create-as --pool default --capacity 200M --allocation 100M --format raw test.img Vol test.img created 2. # virsh vol-info test.img default Name: test.img Type: file Capacity: 200.00 MiB Allocation: 100.00 MiB 3. # virsh vol-resize --pool default test.img --shrink 50M error: Failed to change size of volume 'test.img' to 50M error: invalid argument: can't shrink capacity below existing allocation 4. # virsh vol-wipe --pool default test.img Vol test.img wiped 5. # virsh vol-resize --pool default test.img --shrink 50M Size of volume 'test.img' successfully changed to 50M 6. # qemu-img info /var/lib/libvirt/images/test.img image: /var/lib/libvirt/images/test.img file format: raw virtual size: 50M (52428800 bytes) disk size: 0 7. # virsh vol-info test.img default Name: test.img Type: file Capacity: 50.00 MiB Allocation: 0.00 B 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 |
Description of problem: Volume's allocation should be updated automatically while doing virsh vol-wipe Version-Release number of selected component (if applicable): kernel-3.10.0-322.x86_64.rpm qemu-kvm-rhev-2.3.0-29.el7.x86_64 libvirt-daemon-1.2.17-13.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. Create a vol,which format is raw: #virsh vol-create-as --pool default --capacity 200M --allocation 100M --format raw test.img 2. Make sure the vol info is correct: #virsh vol-info --pool default test.img Name: test.img Type: file Capacity: 200.00 MiB Allocation: 100.00 MiB 3. wipe the vol: #virsh vol-wipe --pool default test.img 4. Check the size of file test.img #du -h /var/lib/libvirt/images/test.img 0 /var/lib/libvirt/images/test.img 5. resize the vol: #virsh vol-resize --pool default test.img --shrink 50M error: Failed to change size of volume 'test.img' to 50M error: invalid argument: can't shrink capacity below existing allocation Actual results: After step 5, 'virsh vol-resize --shrink' failed with error message: " error: Failed to change size of volume 'test.img' to 50M error: invalid argument: can't shrink capacity below existing allocation" The error shows the volume's allocation is not updated automatically while doing 'virsh vol-wipe'. Expected results: After step5, 'virsh vol-resize --shrink' should be executed correctly. Additional info: Excute 'virsh vol-info --pool default test.img' before step 5,'virsh vol-resize --shrink' will be executed correctly.