At 2016-11-11 17:27:48, "Peter Krempa" <pkrempa(a)redhat.com> wrote:
On Fri, Nov 11, 2016 at 16:33:18 +0800, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao(a)gmail.com>
>
> We forget to check the return value of rados_conf_set.
>
> Signed-off-by: Chen Hanxiao <chenhanxiao(a)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