Hello,
We were able to come up with this patch, which does fix the problem in
our use case:
Interested to hear any feedback on the patch.
On 11/21/2012 12:13 PM, Eric Blake wrote:
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:
> These all look closely related as well to the problem commit:
>
>
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=67aea3fb780346b4aa5a...
>
>
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=38c4a9cc40476bd2e598...
>
>
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=4d34c92947e8cf9e9bed...
>
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