On Thu, 2017-05-25 at 09:53 -0700, Greg Rose wrote: > On Mon, 2017-05-22 at 07:40 -0700, Greg Rose wrote: > > On Mon, 2017-05-22 at 12:55 +0800, Yunjian Wang wrote: > > > The memory leak was triggered each time on calling netflow_unref() with > > > containing netflow_flows. And flows need to be removed and destroyed. > > > > > > Signed-off-by: Yunjian Wang <[email protected]> > > > --- > > > ofproto/netflow.c | 7 +++++++ > > > 1 file changed, 7 insertions(+) > > > > > > diff --git a/ofproto/netflow.c b/ofproto/netflow.c > > > index 55f7814..29c5f3e 100644 > > > --- a/ofproto/netflow.c > > > +++ b/ofproto/netflow.c > > > @@ -409,10 +409,17 @@ netflow_ref(const struct netflow *nf_) > > > void > > > netflow_unref(struct netflow *nf) > > > { > > > + struct netflow_flow *nf_flow, *next; > > > + > > > if (nf && ovs_refcount_unref_relaxed(&nf->ref_cnt) == 1) { > > > atomic_count_dec(&netflow_count); > > > collectors_destroy(nf->collectors); > > > ofpbuf_uninit(&nf->packet); > > > + HMAP_FOR_EACH_SAFE (nf_flow, next, hmap_node, &nf->flows) { > > > + hmap_remove(&nf->flows, &nf_flow->hmap_node); > > > + free(nf_flow); > > > + } > > > + hmap_destroy(&nf->flows); > > > free(nf); > > > } > > > } > > > > This looks right to me. The only other place I see the flows freed is > > when they're detected as idle. If the flow is never detected as idle > > then I don't see anywhere else that they are freed up after the xzalloc > > in netflow_flow_update(). > > > > Reviewed-by: Greg Rose <[email protected]> > > > > I'm trying to test this but the condition never seems to be met and thus > the 4 lines of additional code free flows never executes. Is there some > particular flow or type of network traffic that will execute this code? > > I'd like to add a Tested-by for this but unless I can get the code to > execute I can't. > > - Greg
OK, I've finally got my netflow configuration working right with ntopng collecting the flows. I can test the patch tomorrow, it's getting late for me now. Thanks, - Greg _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
