[libvirt] [PATCH] storage_backend_rbd: check the return value of rados_conf_set

Chen Hanxiao chen_han_xiao at 126.com
Fri Nov 11 09:54:57 UTC 2016


At 2016-11-11 17:27:48, "Peter Krempa" <pkrempa at redhat.com> wrote:
>On Fri, Nov 11, 2016 at 16:33:18 +0800, Chen Hanxiao wrote:
>> From: Chen Hanxiao <chenhanxiao at gmail.com>
>> 
>> We forget to check the return value of rados_conf_set.
>> 
>> Signed-off-by: Chen Hanxiao <chenhanxiao at gmail.com>
>> ---
>>  src/storage/storage_backend_rbd.c | 21 ++++++++++++++++++---
>>  1 file changed, 18 insertions(+), 3 deletions(-)
>> 
>> diff --git a/src/storage/storage_backend_rbd.c b/src/storage/storage_backend_rbd.c
>> index 718c4d6..58bcb9a 100644
>> --- a/src/storage/storage_backend_rbd.c
>> +++ b/src/storage/storage_backend_rbd.c
>> @@ -162,10 +162,20 @@ virStorageBackendRBDOpenRADOSConn(virStorageBackendRBDStatePtr ptr,
>>      rados_conf_set(ptr->cluster, "client_mount_timeout", client_mount_timeout);
>
>Right in this context is one instance that is not changed ^^^.

Oops...

>
>>  
>>      VIR_DEBUG("Setting RADOS option rados_mon_op_timeout to %s", mon_op_timeout);
>> -    rados_conf_set(ptr->cluster, "rados_mon_op_timeout", mon_op_timeout);
>> +    if (rados_conf_set(ptr->cluster, "rados_mon_op_timeout", mon_op_timeout) < 0) {
>> +        virReportError(VIR_ERR_INTERNAL_ERROR,
>> +                       _("failed to set RADOS option: %s"),
>> +                       "rados_mon_op_timeout");
>> +        goto cleanup;
>> +    }
>
>Did you have any problems with this? The documentation mentions only one

In a test, I failed in rados_connect once.
When I try again, it works.
So I wonder maybe something wrong in rados_conf_set.

>error code (ENOENT) if the given config option does not exist in
>librados. This would point to us something doing wrong rather than a
>random failure and we should address the primary cause.

Any hints?

Regards,
- Chen




More information about the libvir-list mailing list