[ovs-dev] [PATCH 02/10] ofproto-dpif: Uninitialize 'xlate_cache' to free resources

William Tu u9012063 at gmail.com
Tue Sep 17 16:16:43 UTC 2019


On Wed, Sep 11, 2019 at 02:18:28PM -0700, Yifeng Sun wrote:
> Valgrind reported:
> 
> 1210: ofproto-dpif - continuation after clone
> 
> ==32205== 4,392 (1,440 direct, 2,952 indirect) bytes in 12 blocks are definitely lost in loss record 359 of 362
> ==32205==    at 0x4C2DB8F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
> ==32205==    by 0x532574: xmalloc (util.c:138)
> ==32205==    by 0x4F98CA: ofpbuf_init (ofpbuf.c:123)
> ==32205==    by 0x42C07B: nxt_resume (ofproto-dpif.c:5110)
> ==32205==    by 0x41796F: handle_nxt_resume (ofproto.c:3677)
> ==32205==    by 0x424583: handle_single_part_openflow (ofproto.c:8473)
> ==32205==    by 0x424583: handle_openflow (ofproto.c:8606)
> ==32205==    by 0x4579E2: ofconn_run (connmgr.c:1318)
> ==32205==    by 0x4579E2: connmgr_run (connmgr.c:355)
> ==32205==    by 0x41E0F5: ofproto_run (ofproto.c:1845)
> ==32205==    by 0x40BA63: bridge_run__ (bridge.c:2971)
> ==32205==    by 0x410CF3: bridge_run (bridge.c:3029)
> ==32205==    by 0x407614: main (ovs-vswitchd.c:127)
> 
> This is because 'xcache' was not destroyed properly. This patch fixes it.
> 
> Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>

LGTM
Acked-by: William Tu <u9012063 at gmail.com>

> ---
>  ofproto/ofproto-dpif.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index 751535249e21..46fa1357163b 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -5148,6 +5148,7 @@ nxt_resume(struct ofproto *ofproto_,
>      /* Clean up. */
>      ofpbuf_uninit(&odp_actions);
>      dp_packet_uninit(&packet);
> +    xlate_cache_uninit(&xcache);
>  
>      return error;
>  }
> -- 
> 2.7.4
> 
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-dev


More information about the dev mailing list