
Hello, We were able to come up with this patch, which does fix the problem in our use case: http://pastebin.com/izx40mRd 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@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=67aea3fb780346b4aa5aea4...
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=38c4a9cc40476bd2e598a18...
http://libvirt.org/git/?p=libvirt.git;a=commitdiff;h=4d34c92947e8cf9e9bedfa2...
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