Ticket #39 (closed defect: duplicate)
Memory leak at exit
Reported by: | [email protected]… | Owned by: | |
---|---|---|---|
Priority: | don't know | Component: | don't know |
Version: | git repository | Keywords: | |
Cc: |
Description
When using aethread, some memory is not freed at exit (example below is from the aefile-example, but is reproducible by any aethread using program). Fortunately, the amount of reachable memory seems to be fixed regardless of how often aethreads are used (verified in aefile-example.ae by running the tests twice in the main loop).
==31478== HEAP SUMMARY:
==31478== in use at exit: 440 bytes in 2 blocks
==31478== total heap usage: 70 allocs, 68 frees, 101,172 bytes allocated
==31478==
==31478== Thread 1:
==31478== 168 bytes in 1 blocks are still reachable in loss record 1 of 2
==31478== at 0x4C28BED: malloc (vg_replace_malloc.c:263)
==31478== by 0x40728F: aethread_create_group_pool (aethread.c:89)
==31478== by 0x4044E7: aefile_init (aefile.ae:39)
==31478== by 0x403F4F: ae_worker_aesop_main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478== by 0x4041D1: aesop_main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478== by 0x404436: main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478==
==31478== 272 bytes in 1 blocks are possibly lost in loss record 2 of 2
==31478== at 0x4C272B8: calloc (vg_replace_malloc.c:566)
==31478== by 0x401128E: _dl_allocate_tls (dl-tls.c:300)
==31478== by 0x4E36483: [email protected]@GLIBC_2.2.5 (allocatestack.c:580)
==31478== by 0x40732D: aethread_create_group_pool (aethread.c:111)
==31478== by 0x4044E7: aefile_init (aefile.ae:39)
==31478== by 0x403F4F: ae_worker_aesop_main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478== by 0x4041D1: aesop_main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478== by 0x404436: main (in /home/jehannum/Source/aesop-test/aefile-example)
==31478==
==31478== LEAK SUMMARY:
==31478== definitely lost: 0 bytes in 0 blocks
==31478== indirectly lost: 0 bytes in 0 blocks
==31478== possibly lost: 272 bytes in 1 blocks
==31478== still reachable: 168 bytes in 1 blocks
==31478== suppressed: 0 bytes in 0 blocks
==31478==
==31478== For counts of detected and suppressed errors, rerun with: -v
==31478== Use --track-origins=yes to see where uninitialised values come from
==31478== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 4 from 4)
Duplicate of #36; fixed.