[libvirt] [BUG] storage_backend_fs: failung virStorageBackendProbeTarget() disabled whole pool
Daniel P. Berrange
berrange at redhat.com
Thu Feb 17 11:21:11 UTC 2011
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 :|
More information about the libvir-list
mailing list