#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