Great catch. Also, very cool with sleuthing with your malloc histogram (as discussed off-list).
Do you think it's worth mentioning in the comment describing xlate_actions()? Acked-by: Justin Pettit <jpet...@nicira.com> --Justin On Aug 19, 2013, at 10:46 PM, Ben Pfaff <b...@nicira.com> wrote: > Every xlate_actions() needs a corresponding xlate_out_uninit(), but the > call in handle_flow_miss() lacked one. struct xlate_out has a built-in > 256-byte actions stub, so the bug only showed up for lots of actions. > > Bug #19198. > Reported-by: Ronald Lee <ronald...@vmware.com> > Signed-off-by: Ben Pfaff <b...@nicira.com> > --- > This probably needs to be ported to master, but this was reported as > an urgent bug against branch-1.11, so I've fixed it there first. > > ofproto/ofproto-dpif.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c > index 0f4c42c..dc89727 100644 > --- a/ofproto/ofproto-dpif.c > +++ b/ofproto/ofproto-dpif.c > @@ -3898,10 +3898,12 @@ handle_flow_miss(struct flow_miss *miss, struct > flow_miss_op *ops, > if (miss->key_fitness == ODP_FIT_TOO_LITTLE > || !flow_miss_should_make_facet(miss, &xout.wc)) { > handle_flow_miss_without_facet(rule, &xout, miss, ops, n_ops); > + xlate_out_uninit(&xout); > return; > } > > facet = facet_create(miss, rule, &xout, stats); > + xlate_out_uninit(&xout); > stats = NULL; > } > handle_flow_miss_with_facet(miss, facet, now, stats, ops, n_ops); > -- > 1.7.10.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev