[sheepdog] [PATCH RFC] sheep: free memory used for exceptional nodes

MORITA Kazutaka morita.kazutaka at gmail.com
Mon May 13 18:58:36 CEST 2013


At Mon,  6 May 2013 23:46:04 +0900,
Hitoshi Mitake wrote:
> 
> It seems that current clear_exceptional_node_lists() leaks memory used
> for representing delayed and failed nodes.
> 
> Signed-off-by: Hitoshi Mitake <mitake.hitoshi at lab.ntt.co.jp>
> ---
>  sheep/group.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/sheep/group.c b/sheep/group.c
> index bb5d703..d335807 100644
> --- a/sheep/group.c
> +++ b/sheep/group.c
> @@ -452,10 +452,14 @@ static void clear_exceptional_node_lists(void)
>  {
>  	struct node *n, *t;
>  
> -	list_for_each_entry_safe(n, t, &sys->failed_nodes, list)
> +	list_for_each_entry_safe(n, t, &sys->failed_nodes, list) {
>  		list_del(&n->list);
> -	list_for_each_entry_safe(n, t, &sys->delayed_nodes, list)
> +		free(n);
> +	}
> +	list_for_each_entry_safe(n, t, &sys->delayed_nodes, list) {
>  		list_del(&n->list);
> +		free(n);
> +	}

Freeing delayed nodes looks wrong because they will join sheepdog after they are
removed from sys->delayed_nodes.

Thanks,

Kazutaka



More information about the sheepdog mailing list