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.hito...@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 -- sheepdog mailing list sheepdog@lists.wpkg.org http://lists.wpkg.org/mailman/listinfo/sheepdog