[libvirt] [PATCH] storage_backend_rbd: always call rados_conf_read_file when connect a rbd pool

John Ferlan jferlan at redhat.com
Wed Jan 18 14:28:14 UTC 2017


[...]


>>
>> Could you provide a bit more context...
>>
>> Why does calling rados_conf_read_file with a NULL resolve the issue?
>>
>> Is this something "new" or "expected"? And if expected, why are we only
>> seeing it now?
>>
>> What is the other thread that "has" the lock doing?
> 
> It seams that the server side of ceph does not response our request.
> 
> So when libvirt call rbd_open/rbd_list, etc, it never return.
> 
> But qemu works fine.
> So I take qemu's code as a reference.
> https://github.com/qemu/qemu/blob/master/block/rbd.c#L365
> 
> rados_conf_read_file with a NULL will try to get ceph conf file from 
> /etc/ceph and other default paths.
> 
> Althougth we  rados_conf_set in the following code,
> w/o rados_conf_read_file,
> ceph-0.94.7-1.el7 does not answer our rbd_open.
> 
> Some elder or newer ceph server does not have this issue.
> I think this may be a ceph server bug of ceph-0.94.7-1.el7.

Thus a bug should be filed against ceph to fix their 0.94 version rather
than adding what would seemingly be an unnecessary change into libvirt
to work around a problem that appears to be fixed in some future version
of ceph.

John

> 
> Doing rados_conf_read_file(cluster, NULL)
> will make our code more robust.
> 
> Regards,
> - Chen
> 




More information about the libvir-list mailing list