Hello everyone, Recently, I use openvswitch-2.0.0 to test send packets between 
the vms, duration the test I use valgrind to

catch if there is memory leak in ovs-vswitched process , after test I see the 
valgrind log as follow :

==12453== Invalid read of size 8
==12453==    at 0x424B06: handle_flow_misses (ofproto-dpif.c:3501)
==12453==    by 0x425A3A: handle_upcalls (ofproto-dpif.c:3632)
==12453==    by 0x425C7D: type_run_fast (ofproto-dpif.c:1041)
==12453==    by 0x412651: ofproto_type_run_fast (ofproto.c:1332)
==12453==    by 0x406AC4: bridge_run_fast (bridge.c:2384)
==12453==    by 0x40D8ED: main (ovs-vswitchd.c:117)
==12453==  Address 0x8122820 is 1,120 bytes inside a block of size 1,144 free'd
==12453==    at 0x4C263F0: free (vg_replace_malloc.c:446)
==12453==    by 0x424948: handle_flow_misses (ofproto-dpif.c:4599)
==12453==    by 0x425A3A: handle_upcalls (ofproto-dpif.c:3632)
==12453==    by 0x425C7D: type_run_fast (ofproto-dpif.c:1041)
==12453==    by 0x412651: ofproto_type_run_fast (ofproto.c:1332)
==12453==    by 0x406AC4: bridge_run_fast (bridge.c:2384)
==12453==    by 0x40D8ED: main (ovs-vswitchd.c:117)

==12453== Invalid write of size 4
==12453==    at 0x424B41: handle_flow_misses (ofproto-dpif.c:3507)
==12453==    by 0x425A3A: handle_upcalls (ofproto-dpif.c:3632)
==12453==    by 0x425C7D: type_run_fast (ofproto-dpif.c:1041)
==12453==    by 0x412651: ofproto_type_run_fast (ofproto.c:1332)
==12453==    by 0x406AC4: bridge_run_fast (bridge.c:2384)
==12453==    by 0x40D8ED: main (ovs-vswitchd.c:117)
==12453==  Address 0x8122828 is 1,128 bytes inside a block of size 1,144 free'd
==12453==    at 0x4C263F0: free (vg_replace_malloc.c:446)
==12453==    by 0x424948: handle_flow_misses (ofproto-dpif.c:4599)
==12453==    by 0x425A3A: handle_upcalls (ofproto-dpif.c:3632)
==12453==    by 0x425C7D: type_run_fast (ofproto-dpif.c:1041)
==12453==    by 0x412651: ofproto_type_run_fast (ofproto.c:1332)
==12453==    by 0x406AC4: bridge_run_fast (bridge.c:2384)
==12453==    by 0x40D8ED: main (ovs-vswitchd.c:117)

then I find the code as follow:

    if (list_is_empty(&facet->subfacets)) {
        subfacet = &facet->one_subfacet;
    } else {
        subfacet = subfacet_find(backer, key, key_len, key_hash);
        if (subfacet) {
            if (subfacet->facet == facet) {
                return subfacet;
            }

            /* This shouldn't happen. */
            VLOG_ERR_RL(&rl, "subfacet with wrong facet");
            subfacet_destroy(subfacet);
        }
So , I should annotation or delete the code above? Any advice on this would be 
greatly appreciated.

thanks


<<inline: image001.gif>>

_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to