On 11/21/2012 09:45 AM, Scott Sullivan wrote:
Hello,
I have been testing libvirt v1.0.0 for deployment within my
organization, and in the process discovered what appears to be a bug
that breaks virsh attach-device, when attaching an RBD volume to an
instance. First, here is the error presented, with v1.0.0 (this worked
in v0.10.2):
[root@host ~]# virsh attach-device W5APQ8 G84VV1.xml
error: Failed to attach device from G84VV1.xml
error: cannot open file 'dc3-1-test/G84VV1': No such file or directory
[root@host ~]#
Thanks for the report. Hmm, something in the new probing code is
failing to recognize that rbd devices are not local files, and therefore
should not be probed via stat() and open() calls.
Using git bisect, I narrowed the problem down to this as the first
commit to break this setup:
4d34c92947e8cf9e9bedfa227ada1d2dba92d68a is the first bad commit
commit 4d34c92947e8cf9e9bedfa227ada1d2dba92d68a
Author: Eric Blake <eblake(a)redhat.com>
Date: Tue Oct 9 16:08:14 2012 -0600
That may be the commit that exposed the problem, but I'm sure the actual
regression was introduced as a latent bug in one of my earlier
conversions in src/util/storage_file.c:
which you have indeed identified as possible culprits.
If I build libvirt from sources before these commits and then run the
exact virsh-attach command shown above, the attachment works and I do
not get any errors.
I wanted to see if anyone had any insights on this, or perhaps a commit
to correct this issue. If I can be of any further assistance with this,
let me know.
If you feel comfortable writing up a C patch; great. If not, I probably
won't be able to get to this until next week, or someone else may beat
me to it. I also know that Peter is also trying to plug another
regression in the same code:
https://www.redhat.com/archives/libvir-list/2012-November/msg00894.html
--
Eric Blake eblake(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org