>> >On Wed, Apr 09, 2014 at 02:23:13AM +0000, Yinpeijun wrote:
>> >> >On Tue, Apr 08, 2014 at 03:51:33AM +0000, Yinpeijun wrote:
>> >> >> 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 :
>> >...
>> >> >> So , I should annotation or delete the code above? Any advice on 
>> >> >> this would be greatly appreciated.
>> >> >
>> >> >This is certainly a bug that should be fixed, but I'm having 
>> >> >trouble matching up the line numbers in the valgrind output above with 
>> >> >the code that you quoted.  What are the line numbers for the code you 
>> >> >quoted above?  Are you using exactly the openvswitch 2.0.0 release, or a 
>> >> >different release, or a modified version of some release?
>> >> 
>> >> Thank you for your reply Ben. 
>> >> sorry for my mistake ,I exactly use a openvswitch 2.0.0 release but I 
>> >> have added some our own code, and the valgrind output above match the 
>> >> line numbers as follow:
>> >
>> >Can you explain how to trigger the issue?  I spent a little time 
>> >running
>> 
>> I use two servers and create 20 vms in each , which are divided into three 
>> classes: no vlan ,vlan 20 and vxlan 65536(our own scheme ), then vms to vms 
>> send TCP or UDP packets with netperf .
>> 
>> >2.0.0 today under valgrind and didn't manage to trigger it.  (Also, 
>> >since you've made significant changes to OVS, it is possible that one 
>> >of those changes introduced the problem.)
>> 
>> To ensure whether our changes introduced the problem,I will use 
>> openvswitch-2.0.0 release without modification to test in the same 
>> environment above. 
>
>Did you find a memory leak in unmodified OVS?


After my test , there is no memory leak in unmodified OVS  and  I find my error 
and trigger condition as follows:

In ovs_flow_extract() function, when the udp dst port is I want , I change the 
udp src port to a static number like 4096 .

Then in subfacet_create() function code go to shouldn't happen way:

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);
        }

        subfacet = xmalloc(sizeof *subfacet);
    }


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

Reply via email to