>> >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