Red Hat Bugzilla – Bug 1119592
libvirt will report error after use pool-build in Non-root mode(qemu:///session)
Last modified: 2015-03-05 02:41:13 EST
Description of problem: libvirt will report error after use pool-build in Non-root mode(qemu:///session) But after do pool-build, the dir of pool's path have been built,seems pool-build done successfully. Version-Release number of selected component (if applicable): libvirt-1.1.1-29.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.login a non-root user and make sure $ virsh uri qemu:///session 2.prepare a pool xml $vi pool.xml <pool type='dir'> <name>default1</name> <capacity unit='bytes'>0</capacity> <allocation unit='bytes'>0</allocation> <available unit='bytes'>0</available> <source> </source> <target> <path>/tmp/images</path> <permissions> <mode>0755</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool> 3.define it $ virsh pool-define pool.xml Pool default1 defined from pool.xml 4.make sure no dir $ ll /tmp/images ls: cannot access /tmp/images: No such file or directory 5.$ virsh pool-build default1 error: Failed to build pool default1 error: cannot create path '/tmp/images': Unknown error -1 6.$ ll /tmp/images total 0 Actual results: pool-build will report error but create dir success Expected results: no error output Additional info:
Libvirt will create the directory, but it cannot change the uid:gid to 0:0. I've sent a patch changing the error from 'Unknown error' to 'Permission denied: https://www.redhat.com/archives/libvir-list/2014-July/msg00723.html
Now pushed: commit d7dedc365068c3dfdc983f9e224cab258f93d913 Author: Ján Tomko <jtomko@redhat.com> CommitDate: 2014-07-16 09:39:57 +0200 Fix error on fs pool build failure https://bugzilla.redhat.com/show_bug.cgi?id=1119592 Introduced by commit 62927dd v0.7.6. git describe: v1.2.6-147-gd7dedc3
Tested this one with libvirt-1.2.8-6.el7.x86_64. login as non-root user 1.$vi pool.xml <pool type='dir'> <name>default1</name> <capacity unit='bytes'>0</capacity> <allocation unit='bytes'>0</allocation> <available unit='bytes'>0</available> <source> </source> <target> <path>/tmp/images</path> <permissions> <mode>0644</mode> <owner>0</owner> <group>0</group> </permissions> </target> </pool> 2.define it $ virsh pool-define pool.xml Pool default1 defined from pool.xml 3.make sure no dir $ ll /tmp/images ls: cannot access /tmp/images: No such file or directory 4. $ virsh pool-build default1 error: Failed to build pool default1 error: cannot create path '/tmp/images': Operation not permitted 5. $ ls -l /tmp drw-r--r--. 2 yangyang yangyang 6 Nov 11 18:56 images Per comment #2, the uid/gid of /tmp/images are not set and error message is fixed, mark it as 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-2015-0323.html