On Tue, Jan 06, 2009 at 03:12:45PM +0530, Sudhir Kumar wrote: > On Sun, Jan 04, 2009 at 10:29:38PM +0530, Dhaval Giani wrote: > > Fixes a few memory leaks, and leaked file handles. > > > > [r...@gondor tests]# make > > > > g++ -g -O2 -Wall -DDEBUG -I .. -o libcgrouptest01 libcgrouptest01.c -L .. > > -lcgroup -lpthread > > libcgrouptest01.c: In function bint group_modified(char*, int)b: > > > > libcgrouptest01.c:1060: warning: format b%db expects type bint*b, but > > argument 3 has type bbool*b > > s[r...@gondor tests]# sh runlibcgrouptest.sh > > > > > > Running first set of testcases > > ============================== > > ==14758== Memcheck, a memory error detector. > > ==14758== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. > > ==14758== Using LibVEX rev 1804, a library for dynamic binary translation. > > ==14758== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. > > ==14758== Using valgrind-3.3.0, a dynamic binary instrumentation framework. > > ==14758== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. > > ==14758== For more details, rerun with: -v > > ==14758== > > C:DBG: fs_mounted as recieved from script=0 > > TEST 1:PASS : cgroup_init() Ret Value = 50001 > > TEST 2:PASS : cgroup_attach_task() Ret Value = 50014 > > Parameter nullcgroup > > TEST 3:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST 4:PASS : cgroup_create_cgroup() Ret Value = 50014 > > > > TEST 5:PASS : cgroup_delete_cgroup() Ret Value = 50014 > > > > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 50014 > > > > TEST 7:PASS : cgroup_delete_cgroup() Ret Value = 50014 > > > > TEST 8:PASS : cgroup_add_controller() Ret Value = 0 > > > > TEST 9:PASS : cgroup_add_controller() Ret Value = 0 > > > > TEST10:PASS : cgroup_add_controller() Ret Value = 0 > > > > ==14758== > > > > ==14758== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 18 from 1) > > > > ==14758== malloc/free: in use at exit: 0 bytes in 0 blocks. > > > > ==14758== malloc/free: 18 allocs, 18 frees, 32,293 bytes allocated. > > > > ==14758== For counts of detected errors, rerun with: -v > > > > ==14758== All heap blocks were freed -- no leaks are possible. > > > > > > Running second set of testcases > > ============================== > > ==14774== Memcheck, a memory error detector. > > ==14774== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. > > ==14774== Using LibVEX rev 1804, a library for dynamic binary translation. > > ==14774== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. > > ==14774== Using valgrind-3.3.0, a dynamic binary instrumentation framework. > > ==14774== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. > > ==14774== For more details, rerun with: -v > > ==14774== > > C:DBG: fs_mounted as recieved from script=1 > > C:DBG: mountpoint1 as recieved from script=/dev/cgroup_controllers-1 > > sanity check pass. cgroup > > TEST 1:PASS : cgroup_attach_task() Ret Value = 50014 > > Parameter nullcgroup > > TEST 2:PASS : cgroup_init() Ret Value = 0 > > > > TEST 3:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > TEST 4:PASS : cgroup_attach_task_pid() Ret Value = 50016 > > > > TEST 5:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST 7:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x40070D8: strncat (mc_replace_strmem.c:214) > > > > ==14774== by 0x804BC92: main (libcgrouptest01.c:1271) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804BC9D: main (libcgrouptest01.c:252) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007285: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804BC9D: main (libcgrouptest01.c:252) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x8049471: _ZL14group_modifiedPci (libcgrouptest01.c:1076) > > > > ==14774== by 0x804C583: main (libcgrouptest01.c:254) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x8049479: _ZL14group_modifiedPci (libcgrouptest01.c:1076) > > > > ==14774== by 0x804C583: main (libcgrouptest01.c:254) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007470: strncmp (mc_replace_strmem.c:314) > > > > ==14774== by 0x804949B: _ZL14group_modifiedPci (libcgrouptest01.c:1076) > > > > ==14774== by 0x804C583: main (libcgrouptest01.c:254) > > > > TEST 8:PASS : cgroup_modify_cgroup() Ret Value = 0 Parameter > > same cgroup > > TEST 9:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14774== by 0x804BD35: main (libcgrouptest01.c:286) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007285: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14774== by 0x804BD35: main (libcgrouptest01.c:286) > > > > TEST10:PASS : cgroup_modify_cgroup() Ret Value = 0 > > > > TEST11:PASS : cgroup_modify_cgroup() Ret Value = 50007 > > > > TEST12:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14774== by 0x804BDF3: main (libcgrouptest01.c:314) > > > > ==14774== > > > > ==14774== Conditional jump or move depends on uninitialised value(s) > > > > ==14774== at 0x4007285: strcpy (mc_replace_strmem.c:268) > > > > ==14774== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14774== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14774== by 0x804BDF3: main (libcgrouptest01.c:314) > > > > TEST13:PASS : cgroup_modify_cgroup() Ret Value = 0 > > > > TEST14:PASS : cgroup_get_cgroup() Ret Value = 50007 > > Parameter nullcgroup > > TEST15:PASS : cgroup_get_cgroup() Ret Value = 50002 > > Parameter not created group > > TEST16:PASS : cgroup_get_cgroup() Ret Value = 0 > > > > TEST 0:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST 0:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST17:FAIL : cgroup_get_cgroup() Ret Value = 50017 > > > > TEST16:PASS : cgroup_delete_cgroup() Ret Value = 0 Group > > deleted from filesystem > > TEST17:PASS : cgroup_create_cgroup() Ret Value = 50007 > > > > TEST18:PASS : cgroup_delete_cgroup() Ret Value = 50007 > > > > TEST19:PASS : cgroup_compare_cgroup() Ret Value = 50011 > > Parameter nullcgroup > > TEST20:PASS : cgroup_compare_cgroup() Ret Value = 0 > > > > TEST21:PASS : cgroup_compare_cgroup() Ret Value = 50017 > > > > ==14774== > > > > ==14774== ERROR SUMMARY: 45 errors from 10 contexts (suppressed: 18 from 1) > > > > ==14774== malloc/free: in use at exit: 0 bytes in 0 blocks. > > > > ==14774== malloc/free: 187 allocs, 187 frees, 234,711 bytes allocated. > > > > ==14774== For counts of detected errors, rerun with: -v > > > > ==14774== All heap blocks were freed -- no leaks are possible. > > > > Cleanup done > > > > > > Running third set of testcases > > ============================== > > ==14827== Memcheck, a memory error detector. > > ==14827== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. > > ==14827== Using LibVEX rev 1804, a library for dynamic binary translation. > > ==14827== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. > > ==14827== Using valgrind-3.3.0, a dynamic binary instrumentation framework. > > ==14827== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. > > ==14827== For more details, rerun with: -v > > ==14827== > > C:DBG: fs_mounted as recieved from script=2 > > C:DBG: mountpoint1 as recieved from script=/dev/cgroup_controllers-1 > > C:DBG: mountpoint2 as recieved from script=/dev/cgroup_controllers-2 > > sanity check pass. cgroup > > TEST 1:PASS : cgroup_init() Ret Value = 0 > > TEST 2:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > TEST 3:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST 4:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST 5:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST 6:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST 7:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST 8:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > TEST 9:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > TEST10:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > TEST11:PASS : cgroup_attach_task() Ret Value = 50002 > > Parameter not created group > > TEST12:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > ==14827== Conditional jump or move depends on uninitialised value(s) > > > > ==14827== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > > > ==14827== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > > > ==14827== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14827== by 0x804C1D6: main (libcgrouptest01.c:498) > > > > TEST13:PASS : cgroup_modify_cgroup() Ret Value = 0 > > > > TEST14:PASS : cgroup_new_cgroup() Ret Value = 0 > > > > ==14827== > > ==14827== Conditional jump or move depends on uninitialised value(s) > > ==14827== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > ==14827== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > ==14827== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14827== by 0x804C23C: main (libcgrouptest01.c:519) > > ==14827== > > ==14827== Conditional jump or move depends on uninitialised value(s) > > ==14827== at 0x4007285: strcpy (mc_replace_strmem.c:268) > > ==14827== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > ==14827== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14827== by 0x804C23C: main (libcgrouptest01.c:519) > > TEST15:PASS : cgroup_modify_cgroup() Ret Value = 0 > > TEST16:PASS : cgroup_delete_cgroup() Ret Value = 0 Group > > deleted from filesystem > > TEST17:PASS : cgroup_delete_cgroup() Ret Value = 0 Group > > deleted from filesystem > > TEST18:PASS : cgroup_new_cgroup() Ret Value = 0 > > TEST19:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found under both controllers > > TEST20:PASS : cgroup_attach_task() Ret Value = 0 Task found > > in group/s > > TEST21:PASS : cgroup_new_cgroup() Ret Value = 0 > > ==14827== > > ==14827== Conditional jump or move depends on uninitialised value(s) > > ==14827== at 0x4007271: strcpy (mc_replace_strmem.c:268) > > ==14827== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > ==14827== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14827== by 0x804C464: main (libcgrouptest01.c:622) > > ==14827== > > ==14827== Conditional jump or move depends on uninitialised value(s) > > ==14827== at 0x4007285: strcpy (mc_replace_strmem.c:268) > > ==14827== by 0x402F24B: cgroup_modify_cgroup (api.c:1012) > > ==14827== by 0x804A3E7: test_cgroup_modify_cgroup(int, cgroup*, char > > const*, int, int, int, int, int) (libcgrouptest01.c:889) > > ==14827== by 0x804C464: main (libcgrouptest01.c:622) > > TEST22:PASS : cgroup_modify_cgroup() Ret Value = 0 group > > modified under both controllers > > TEST23:PASS : cgroup_delete_cgroup() Ret Value = 0 Group > > deleted from filesystem > > TEST 0:PASS : cgroup_new_cgroup() Ret Value = 0 > > TEST 0:PASS : cgroup_create_cgroup() Ret Value = 0 group > > found in filesystem > > TEST24:FAIL : cgroup_get_cgroup() Ret Value = 50018 > > ==14827== > > ==14827== ERROR SUMMARY: 79 errors from 5 contexts (suppressed: 18 from 1) > > ==14827== malloc/free: in use at exit: 66,044 bytes in 15 blocks. > > ==14827== malloc/free: 196 allocs, 181 frees, 228,734 bytes allocated. > > ==14827== For counts of detected errors, rerun with: -v > > ==14827== searching for pointers to 15 not-freed blocks. > > ==14827== checked 6,381,180 bytes. > > ==14827== > > ==14827== > > ==14827== 66,044 (18,064 direct, 47,980 indirect) bytes in 4 blocks are > > definitely lost in loss record 1 of 3 > > ==14827== at 0x4004BA2: calloc (vg_replace_malloc.c:397) > > ==14827== by 0x4030D9A: cgroup_new_cgroup (wrapper.c:28) > > ==14827== by 0x8049656: new_cgroup(char*, char*, char*, int, int) > > (libcgrouptest01.c:1132) > > ==14827== by 0x8049917: create_new_cgroup_ds(int, char const*, int, int) > > (libcgrouptest01.c:744) > > ==14827== by 0x804C190: main (libcgrouptest01.c:485) > > ==14827== > > ==14827== > > ==14827== 20,980 bytes in 5 blocks are indirectly lost in loss record 2 of 3 > > ==14827== at 0x4004BA2: calloc (vg_replace_malloc.c:397) > > ==14827== by 0x4030C2C: cgroup_add_value_string (wrapper.c:122) > > ==14827== by 0x8048FDB: _ZL17add_control_valueP17cgroup_controllerPcS1_i > > (libcgrouptest01.c:1113) > > ==14827== by 0x80496C9: new_cgroup(char*, char*, char*, int, int) > > (libcgrouptest01.c:1147) > > ==14827== by 0x8049917: create_new_cgroup_ds(int, char const*, int, int) > > (libcgrouptest01.c:744) > > ==14827== by 0x804C190: main (libcgrouptest01.c:485) > > ==14827== > > ==14827== > > ==14827== 27,000 bytes in 6 blocks are indirectly lost in loss record 3 of 3 > > ==14827== at 0x4004BA2: calloc (vg_replace_malloc.c:397) > > ==14827== by 0x4030F4B: cgroup_add_controller (wrapper.c:62) > > ==14827== by 0x80496AE: new_cgroup(char*, char*, char*, int, int) > > (libcgrouptest01.c:1144) > > ==14827== by 0x8049917: create_new_cgroup_ds(int, char const*, int, int) > > (libcgrouptest01.c:744) > > ==14827== by 0x804C190: main (libcgrouptest01.c:485) > > ==14827== > > ==14827== LEAK SUMMARY: > > ==14827== definitely lost: 18,064 bytes in 4 blocks. > > ==14827== indirectly lost: 47,980 bytes in 11 blocks. > > ==14827== possibly lost: 0 bytes in 0 blocks. > > ==14827== still reachable: 0 bytes in 0 blocks. > > ==14827== suppressed: 0 bytes in 0 blocks. > > Cleanup done > > [r...@gondor tests]# > This output is after or before the patch. > Still there are leaks. I have a better patch fixing this all. I will > post it soon.
Ah cool. Please go ahead and post it. I was working on fixing those issues before I posted the other patches again. thanks, -- regards, Dhaval ------------------------------------------------------------------------------ _______________________________________________ Libcg-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libcg-devel
