[sheepdog] [PATCH] sheep: remove invalid error logs produced by dog vdi setattr

Hitoshi Mitake mitake.hitoshi at gmail.com
Wed Mar 19 03:51:53 CET 2014


At Wed, 19 Mar 2014 11:32:43 +0900,
Yuichi Bando wrote:
> 
> This bug is reported in https://bugs.launchpad.net/sheepdog-project/+bug/1273080
> To remove invalid error logs, I changed to skip sd_read_object() for existence check in sheep/vdi.c
> if -x option is not specified to dog vdi setattr.
> 
> === Bug Description ===
> I got error logs when I added new attribute on vdi.
> It seems that sheep searched for existing attr and couldn't find. Then logged error but created attr normaly.
> I think these log should be INFO or WARN level.
> 
> Environment and versions
> sheepdog : tag 0.7.6 (4 nodes)
> operating system : CentOS 6.4
> 
> Here's the operations.
> 
> $ dog vdi list
>   Name Id Size Used Shared Creation time VDI id Copies Tag
> $ dog cluster format
> using backend plain store
> $ dog cluster format
> using backend plain store
> $ dog vdi create disk1 10m
> $ dog vdi list
>   Name Id Size Used Shared Creation time VDI id Copies Tag
>   disk1 0 10 MB 0.0 MB 0.0 MB 2014-01-23 18:51 e8b18f 3
> $ dog vdi setattr disk1 key1 value1
> $ dog vdi getattr disk1 key1
> value1
> 
> This returned 'value1' for key1 normally.
> 
> Here's the sheep.log
> 
> Jan 23 18:53:15 ERROR [gway 12101] sheep_exec_req(1062) failed No object found
> Jan 23 18:53:15 ERROR [gway 12101] sheep_exec_req(1062) failed No object found
> Jan 23 18:53:15 ERROR [gway 12101] sheep_exec_req(1062) failed No object found
> Jan 23 18:53:15 ERROR [block] read_backend_object(414) failed to read object 20e8b18fc3b4ab67, No object found
> 
> No output on log when 'dog vdi getattr'.
> 
> Thanks
> Yoshinori Matsuo
> 
> Reported-by: Yoshinori Matsuo <matsuo.yoshinori at lab.ntt.co.jp>
> Signed-off-by: Yuichi Bando <bando.yuichi at lab.ntt.co.jp>
> ---
>  sheep/vdi.c |    7 ++++---
>  1 files changed, 4 insertions(+), 3 deletions(-)

Looks good to me.
Reviewed-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>

Thanks,
Hitoshi

> 
> diff --git a/sheep/vdi.c b/sheep/vdi.c
> index 7af743e..baac2f9 100644
> --- a/sheep/vdi.c
> +++ b/sheep/vdi.c
> @@ -1187,7 +1187,7 @@ int get_vdi_attr(struct sheepdog_vdi_attr *vattr, int data_len,
>  	struct sheepdog_vdi_attr tmp_attr;
>  	uint64_t oid;
>  	uint32_t end;
> -	int ret;
> +	int ret = SD_RES_NO_OBJ;
>  
>  	vattr->ctime = create_time;
>  
> @@ -1196,8 +1196,9 @@ int get_vdi_attr(struct sheepdog_vdi_attr *vattr, int data_len,
>  	end = *attrid - 1;
>  	while (*attrid != end) {
>  		oid = vid_to_attr_oid(vid, *attrid);
> -		ret = sd_read_object(oid, (char *)&tmp_attr,
> -				     sizeof(tmp_attr), 0);
> +		if (excl || !wr)
> +			ret = sd_read_object(oid, (char *)&tmp_attr,
> +					sizeof(tmp_attr), 0);
>  
>  		if (ret == SD_RES_NO_OBJ && wr) {
>  			ret = sd_write_object(oid, (char *)vattr, data_len, 0,
> -- 
> 1.7.1
> 
> 
> -- 
> sheepdog mailing list
> sheepdog at lists.wpkg.org
> http://lists.wpkg.org/mailman/listinfo/sheepdog



More information about the sheepdog mailing list