#732: Coroutine contexts not getting freed
--------------------------------+-------------------------------------------
 Reporter:  coke                |        Type:  bug  
   Status:  new                 |    Priority:  major
Milestone:                      |   Component:  core 
  Version:  trunk               |    Severity:  high 
 Keywords:  tcl blocker memory  |        Lang:       
    Patch:                      |    Platform:       
--------------------------------+-------------------------------------------

Comment(by coke):

 From a valgrind run against partcl (r440) on parrot (r39470) using

 parrot tcl.pbc -e "puts hi"

 The size of the context-related leaks are now greatly reduced, but still
 present. Now including all the alloc_context related leaks instead of just
 the biggest two.

 Totals:
 {{{
 ==12199==    definitely lost: 30,925 bytes in 1,510 blocks.
 ==12199==    indirectly lost: 4,316 bytes in 83 blocks.
 }}}

 Context related leaks:
 {{{
 ==12199== 120 bytes in 1 blocks are indirectly lost in loss record 26 of
 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x40EC960: runops_args (ops.c:206)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)

 ==12199== 136 bytes in 1 blocks are indirectly lost in loss record 28 of
 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x40EC960: runops_args (ops.c:206)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)

 ==12199== 152 bytes in 1 blocks are indirectly lost in loss record 29 of
 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x4076005: Parrot_tailcallmethod_p_sc (object.ops:151)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)

 ==12199== 232 bytes in 1 blocks are indirectly lost in loss record 34 of
 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x40EC960: runops_args (ops.c:206)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)

 ==12199== 288 (152 direct, 136 indirect) bytes in 1 blocks are definitely
 lost in loss record 38 of 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x407664C: Parrot_callmethodcc_p_sc (object.ops:80)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x41253E8: run_sub (packfile.c:686)
 ==12199==    by 0x41255FB: do_1_sub_pragma (packfile.c:748)
 ==12199==    by 0x4125902: do_sub_pragmas (packfile.c:932)
 ==12199==    by 0x4125A96: PackFile_append_pbc (packfile.c:4816)
 ==12199==    by 0x4125B36: compile_or_load_file (packfile.c:4693)
 ==12199==    by 0x4125E33: Parrot_load_bytecode (packfile.c:4882)
 ==12199==    by 0x40917CB: Parrot_load_bytecode_sc (core.ops:165)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)

 ==12199== 184 bytes in 1 blocks are indirectly lost in loss record 40 of
 48
 ==12199==    at 0x402601E: malloc (vg_replace_malloc.c:207)
 ==12199==    by 0x40D78B3: mem_sys_allocate (alloc_memory.c:47)
 ==12199==    by 0x40D8743: Parrot_alloc_context (alloc_register.c:483)
 ==12199==    by 0x40D8886: Parrot_set_new_context (alloc_register.c:533)
 ==12199==    by 0x425D42E: Parrot_Sub_invoke (sub.pmc:266)
 ==12199==    by 0x4061835: Parrot_invokecc_p (core.ops:504)
 ==12199==    by 0x413124F: runops_slow_core (cores.c:462)
 ==12199==    by 0x412FE4D: runops_int (main.c:987)
 ==12199==    by 0x40EC710: runops (ops.c:107)
 ==12199==    by 0x40ECB03: runops_args (ops.c:256)
 ==12199==    by 0x40ED9B5: Parrot_runops_fromc_args (ops.c:325)
 ==12199==    by 0x40CA856: Parrot_runcode (embed.c:1014)
 ==12199==    by 0x4322A5E: imcc_run_pbc (main.c:801)
 ==12199==    by 0x432365B: imcc_run (main.c:1092)
 ==12199==    by 0x8048967: main (main.c:61)
 }}}

-- 
Ticket URL: <https://trac.parrot.org/parrot/ticket/732#comment:5>
Parrot <https://trac.parrot.org/parrot/>
Parrot Development
_______________________________________________
parrot-tickets mailing list
[email protected]
http://lists.parrot.org/mailman/listinfo/parrot-tickets

Reply via email to