On Thu, Feb 17, 2011 at 11:21:26AM +0100, Philipp Hahn wrote: > Hello, > > I have a problem with the following code fragment, which refreshes a directory > based storage pool: > > storage_backend_fs.c#virStorageBackendFileSystemRefresh(...) > ... > while ((ent = readdir(dir)) != NULL) { > ... > if ((ret = virStorageBackendProbeTarget(...) < 0) { > if (ret == -1) > goto cleanup; > ... > } > ... > } > closedir(dir); > ... > return 0; > cleanup: > ... > return -1; > } > > This disables the whole pool, if it contains an Qcow2 volume while, whose > backfile is (currently) unavailable (because, for example, the central NFS > store is currently unavailable or the permissions don't allow reading). This > is very annoying, since it's hard to find the Qcow2 volume, which breaks the > pool. I use the following command to find broken volumes: > find "$dir" -maxdepth 1 \( -type f -o -type l \) \( -exec kvm-img info {} > \; -o -print \) 2>/dev/null > Even worse, you can't delete the broken or re-create the missing volume with > virsh allone. > > To reproduce: > dir=$(mktemp -d) > virsh pool-create-as tmp dir '' '' '' '' "$dir" > virsh vol-create-as --format qcow2 tmp back 1G > virsh vol-create-as --format qcow2 --backing-vol-format qcow2 --backing-vol > back tmp cow 1G > virsh vol-delete --pool tmp back > virsh pool-refresh tmp > After the last step, the pool will be gone (because it was not persistent). As > long as the now broken image stays in the directory, you will not be able to > re-create or re-start the pool. > > The easiest 'fix' would be to ignore all errors regarding the detection of the > backing files file format. This would at least allow users to still create > new volumes and list existing volumes. I agree, we should be more robust in that respect & treat failure to probe the backing store as non-fatal. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :| -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list