Hello,

looking at the source code, it seems that the xavp is linked to the root
list and should be deleted with the rest of xavps when the
message/transaction structure is destroyed.

Would it be possible to allow me access to the test system in order to
check the memory of kamailio with gdb?

Cheers,
Daniel


On 04/07/16 15:48, José Seabra wrote:
> Hello
>
> I'm using lookup() and registered().
>
> Let me know if do you need more information or tests from my side.
>
> Regards
>
> 2016-07-04 14:41 GMT+01:00 Daniel-Constantin Mierla <mico...@gmail.com
> <mailto:mico...@gmail.com>>:
>
>     Hello,
>
>     one more question: are you using only lookup(...) or using
>     registered(...) (or other functions from registrar module) as well?
>
>     Cheers,
>     Daniel
>
>
>     On 04/07/16 15:21, José Seabra wrote:
>>     Hello,
>>     Right now I'm using registrar functions only in request_route.
>>
>>     At first i had disabled both, after received your email, I
>>     disabled one by one and I see that the only the parameter that is
>>     affecting this, is modparam("registrar", "xavp_rcd", "ulrcd")
>>
>>     Let me know if do you need more information.
>>
>>     Regards
>>     José
>>
>>     2016-07-04 13:20 GMT+01:00 Daniel-Constantin Mierla
>>     <mico...@gmail.com <mailto:mico...@gmail.com>>:
>>
>>         Hello,
>>
>>         very useful information -- are you using the registrar
>>         functions only inside request_route, or you have them also in
>>         failure_route or other type of routes?
>>
>>         Were you able to detect if both cause the leak or you
>>         disabled both of them without trying each one?
>>
>>         Cheers,
>>         Daniel
>>
>>
>>         On 04/07/16 14:01, José Seabra wrote:
>>>         Hello Daniel,
>>>
>>>         I think that the issue is on registrar module.
>>>
>>>         I'm using the following parameters:
>>>
>>>           * modparam("registrar", "xavp_cfg", "regcfg")
>>>           * modparam("registrar", "xavp_rcd", "ulrcd")
>>>
>>>         If I disable it there isn't  memory leak.
>>>
>>>         Let me know if you need more information.
>>>
>>>         Thank you
>>>         Regards
>>>         José
>>>
>>>         2016-07-04 11:27 GMT+01:00 Daniel-Constantin Mierla
>>>         <mico...@gmail.com <mailto:mico...@gmail.com>>:
>>>
>>>             Hello,
>>>
>>>             can you provide more details about where you use xavps
>>>             in the configuration file? Do you use them in some route
>>>             block executed by rtimer or via asyn framework (e.g.,
>>>             via t_continue() or async module)?
>>>
>>>             Cheers,
>>>             Daniel
>>>
>>>
>>>             On 03/07/16 20:35, José Seabra wrote:
>>>>             Hello,
>>>>             I'm monitoring these testes with "corex.shm_summary"
>>>>             provided by kamcmd.
>>>>
>>>>             I'm noticing  that the core module  - xavp.c is
>>>>             consuming lot of memory and it is increasing.
>>>>
>>>>             result of command corex.shm_summary is:
>>>>
>>>>              fm_status: summarizing all alloc'ed. fragments:
>>>>              fm_status:  count=     2 size=      1120 bytes from
>>>>             tm: t_reply.c: _reply_light(542)
>>>>              fm_status:  count=     2 size=       896 bytes from
>>>>             tm: t_msgbuilder.c: build_uac_req(1543)
>>>>              fm_status:  count=  2182 size=    231088 bytes from
>>>>             tm: t_fwd.c: prepare_new_uac(479)
>>>>              fm_status:  count= 12488 size=  12050808 bytes from
>>>>             tm: t_reply.c: relay_reply(1884)
>>>>              fm_status:  count= 12490 size=  14564656 bytes from
>>>>             core: msg_translator.c: build_req_buf_from_sip_req(2149)
>>>>              fm_status:  count= 12492 size=  71366536 bytes from
>>>>             tm: h_table.c: build_cell(317)
>>>>              fm_status:  count= 12490 size=  75086184 bytes from
>>>>             core: sip_msg_clone.c: sip_msg_shm_clone(494)
>>>>              fm_status:  count=     2 size=        96 bytes from
>>>>             tm: t_hooks.c: insert_tmcb(137)
>>>>              fm_status:  count=  2182 size=     17800 bytes from
>>>>             tm: t_fwd.c: prepare_new_uac(524)
>>>>              fm_status:  count=     3 size=       512 bytes from
>>>>             htable: ht_api.c: ht_cell_new(183)
>>>>              fm_status:  count= 12490 size=  10586712 bytes from
>>>>             core: sip_msg_clone.c: msg_lump_cloner(978)
>>>>              fm_status:  count= 56508 size=   3457904 bytes from
>>>>             core: usr_avp.c: create_avp(175)
>>>>              fm_status:  count=     4 size=       600 bytes from
>>>>             tmx: tmx_pretran.c: tmx_check_pretran(250)
>>>>              fm_status:  count=     4 size=      1008 bytes from
>>>>             usrloc: ucontact.c: new_ucontact(98)
>>>>              fm_status:  count=     4 size=      1320 bytes from
>>>>             tmx: tmx_pretran.c: tmx_check_pretran(271)
>>>>              fm_status:  count=     4 size=       144 bytes from
>>>>             usrloc: urecord.c: new_urecord(65)
>>>>              fm_status:  count=     4 size=       328 bytes from
>>>>             usrloc: urecord.c: new_urecord(58)
>>>>              fm_status:  count=    24 size=       952 bytes from
>>>>             usrloc: ../../ut.h: shm_str_dup(723)
>>>>              fm_status:  count=  2182 size=     53040 bytes from
>>>>             tm: t_fwd.c: prepare_new_uac(509)
>>>>              fm_status:  count=12545409 size=1420184592 bytes from
>>>>             core: xavp.c: xavp_new_value(94)
>>>>              fm_status:  count=     4 size=       128 bytes from
>>>>             dmq: worker.c: alloc_job_queue(229)
>>>>              fm_status:  count=     1 size=     13440 bytes from
>>>>             core: counters.c: counters_prefork_init(207)
>>>>              fm_status:  count=     1 size=      4032 bytes from
>>>>             sl: sl_stats.c: init_sl_stats_child(125)
>>>>              fm_status:  count=     1 size=       256 bytes from
>>>>             tmx: tmx_pretran.c: tmx_init_pretran_table(90)
>>>>              fm_status:  count=     1 size=      5376 bytes from
>>>>             tm: t_stats.c: init_tm_stats_child(60)
>>>>              fm_status:  count=     1 size=      1008 bytes from
>>>>             kex: pkg_stats.c: pkg_proc_stats_init(79)
>>>>              fm_status:  count=     3 size=        88 bytes from
>>>>             core: cfg/cfg_struct.c: cfg_clone_str(130)
>>>>              fm_status:  count=     1 size=       744 bytes from
>>>>             core: cfg/cfg_struct.c: cfg_shmize(217)
>>>>              fm_status:  count=     3 size=        64 bytes from
>>>>             usrloc: udomain.c: build_stat_name(51)
>>>>              fm_status:  count=     1 size=     40960 bytes from
>>>>             usrloc: udomain.c: new_udomain(93)
>>>>              fm_status:  count=     1 size=        48 bytes from
>>>>             usrloc: udomain.c: new_udomain(86)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             usrloc: dlist.c: new_dlist(573)
>>>>              fm_status:  count=     1 size=        32 bytes from
>>>>             usrloc: dlist.c: new_dlist(565)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: pt.c: init_pt(110)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: pt.c: init_pt(105)
>>>>              fm_status:  count=     1 size=      2944 bytes from
>>>>             core: pt.c: init_pt(104)
>>>>              fm_status:  count=     1 size=        32 bytes from
>>>>             usrloc: ul_callback.c: register_ulcb(94)
>>>>              fm_status:  count=     1 size=        24 bytes from
>>>>             dmq: ../../ut.h: shm_str_dup(723)
>>>>              fm_status:  count=     1 size=       448 bytes from
>>>>             dmq: dmqnode.c: build_dmq_node(156)
>>>>              fm_status:  count=     2 size=       168 bytes from
>>>>             dmq: peer.c: add_peer(67)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             dmq: dmq.c: mod_init(243)
>>>>              fm_status:  count=     1 size=        96 bytes from
>>>>             dmq: dmq.c: mod_init(237)
>>>>              fm_status:  count=     1 size=        24 bytes from
>>>>             dmq: dmqnode.c: init_dmq_node_list(66)
>>>>              fm_status:  count=     1 size=        24 bytes from
>>>>             dmq: peer.c: init_peer_list(33)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             usrloc: ul_callback.c: init_ulcb_list(45)
>>>>              fm_status:  count=     1 size=      4112 bytes from
>>>>             usrloc: ../../lock_alloc.h: lock_set_alloc(70)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             carrierroute: cr_data.c: rule_fixup_recursor(584)
>>>>              fm_status:  count=     5 size=        56 bytes from
>>>>             carrierroute: ../../ut.h: shm_str_dup(723)
>>>>              fm_status:  count=     1 size=       152 bytes from
>>>>             carrierroute: cr_rule.c: add_route_rule(74)
>>>>              fm_status:  count=     3 size=       240 bytes from
>>>>             core: dtrie.c: dtrie_insert(157)
>>>>              fm_status:  count=     3 size=        48 bytes from
>>>>             core: dtrie.c: dtrie_insert(148)
>>>>              fm_status:  count=     1 size=        48 bytes from
>>>>             carrierroute: cr_rule.c: add_route_flags(225)
>>>>              fm_status:  count=     2 size=       160 bytes from
>>>>             core: dtrie.c: dtrie_init(60)
>>>>              fm_status:  count=     2 size=        32 bytes from
>>>>             core: dtrie.c: dtrie_init(51)
>>>>              fm_status:  count=     1 size=        32 bytes from
>>>>             carrierroute: cr_domain.c: create_domain_data(83)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             carrierroute: cr_carrier.c: create_carrier_data(59)
>>>>              fm_status:  count=     1 size=        64 bytes from
>>>>             carrierroute: cr_carrier.c: create_carrier_data(50)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             carrierroute: cr_db.c: load_route_data_db(295)
>>>>              fm_status:  count=     5 size=      1008 bytes from
>>>>             dispatcher: dispatch.c: reindex_dests(600)
>>>>              fm_status:  count=     1 size=        48 bytes from
>>>>             carrierroute: cr_db.c: load_domain_map(182)
>>>>              fm_status:  count=     1 size=        24 bytes from
>>>>             carrierroute: cr_db.c: load_domain_map(171)
>>>>              fm_status:  count=     1 size=        48 bytes from
>>>>             carrierroute: cr_db.c: load_carrier_map(126)
>>>>              fm_status:  count=     1 size=        24 bytes from
>>>>             carrierroute: cr_db.c: load_carrier_map(115)
>>>>              fm_status:  count=     7 size=       168 bytes from
>>>>             dispatcher: dispatch.c: add_dest2list(350)
>>>>              fm_status:  count=     1 size=        64 bytes from
>>>>             carrierroute: cr_data.c: reload_route_data(172)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             carrierroute: cr_data.c: init_route_data(74)
>>>>              fm_status:  count=     5 size=      4200 bytes from
>>>>             dispatcher: dispatch.c: add_dest2list(324)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             dispatcher: dispatch.c: init_data(204)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             dispatcher: dispatch.c: init_data(195)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             dispatcher: dispatcher.c: mod_init(309)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             dispatcher: dispatcher.c: mod_init(307)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             dispatcher: dispatch.c: ds_ping_active_init(102)
>>>>              fm_status:  count=     1 size=       256 bytes from
>>>>             db_text: dbt_lib.c: dbt_init_cache(81)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             db_text: dbt_lib.c: dbt_init_cache(69)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             db_text: dbt_lib.c: dbt_init_cache(54)
>>>>              fm_status:  count=     3 size=       288 bytes from
>>>>             core: timer.c: register_timer(1011)
>>>>              fm_status:  count=     4 size=   8388608 bytes from
>>>>             htable: ht_api.c: ht_init_tables(381)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             sl: sl_funcs.c: sl_startup(83)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             sl: sl_stats.c: init_sl_stats(110)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             tm: t_hooks.c: init_tmcb_lists(74)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             tm: t_hooks.c: init_tmcb_lists(72)
>>>>              fm_status:  count=     1 size=   2097152 bytes from
>>>>             tm: h_table.c: init_hash_table(467)
>>>>              fm_status:  count=     2 size=        64 bytes from
>>>>             core: cfg/cfg_ctx.c: cfg_register_ctx(47)
>>>>              fm_status:  count=     1 size=        80 bytes from
>>>>             db_postgres: ../../lock_alloc.h: lock_set_alloc(70)
>>>>              fm_status:  count=     1 size=      8192 bytes from
>>>>             core: tcp_main.c: init_tcp(4635)
>>>>              fm_status:  count=     1 size=     32768 bytes from
>>>>             core: tcp_main.c: init_tcp(4629)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: tcp_main.c: init_tcp(4621)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: tcp_main.c: init_tcp(4614)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: tcp_main.c: init_tcp(4607)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: tcp_main.c: init_tcp(4601)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: tcp_main.c: init_tcp(4589)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: usr_avp.c: init_avps(90)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: usr_avp.c: init_avps(89)
>>>>              fm_status:  count=     1 size=     16384 bytes from
>>>>             core: dst_blacklist.c: init_dst_blacklist(437)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: dst_blacklist.c: init_dst_blacklist(430)
>>>>              fm_status:  count=     2 size=        96 bytes from
>>>>             core: timer.c: timer_alloc(514)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: dns_cache.c: init_dns_cache(366)
>>>>              fm_status:  count=     1 size=     16384 bytes from
>>>>             core: dns_cache.c: init_dns_cache(358)
>>>>              fm_status:  count=     1 size=        16 bytes from
>>>>             core: dns_cache.c: init_dns_cache(351)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: dns_cache.c: init_dns_cache(345)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(283)
>>>>              fm_status:  count=     1 size=     16384 bytes from
>>>>             core: timer.c: init_timer(282)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(281)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(280)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(269)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(237)
>>>>              fm_status:  count=     1 size=    278544 bytes from
>>>>             core: timer.c: init_timer(220)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(219)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: timer.c: init_timer(206)
>>>>              fm_status:  count=     1 size=        64 bytes from
>>>>             core: cfg/cfg_struct.c: cfg_child_cb_new(830)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: cfg/cfg_struct.c: sr_cfg_init(361)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: cfg/cfg_struct.c: sr_cfg_init(354)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: cfg/cfg_struct.c: sr_cfg_init(347)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: cfg/cfg_struct.c: sr_cfg_init(335)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: cfg/cfg_struct.c: sr_cfg_init(323)
>>>>              fm_status:  count=     4 size=       928 bytes from
>>>>             htable: ht_api.c: ht_add_table(278)
>>>>              fm_status:  count=     1 size=         8 bytes from
>>>>             core: mem/shm.c: shm_core_lock_init(153)
>>>>              fm_status: -----------------------------
>>>>
>>>>             If i stop these tests and after few minutes, run again
>>>>             the command "corex.shm_summary" the entry that contains
>>>>             the memory consume for xavp.c doesn't decrease.
>>>>
>>>>             It seems that there is a memory leak in this module xavp.c.
>>>>
>>>>             Thank you for your help.
>>>>             Regards
>>>>             José
>>>>
>>>
>>>
>>>             -- 
>>>             Daniel-Constantin Mierla
>>>             http://www.asipto.com - http://www.kamailio.org
>>>             http://twitter.com/#!/miconda
>>>             <http://twitter.com/#%21/miconda> - 
>>> http://www.linkedin.com/in/miconda
>>>
>>>
>>>             _______________________________________________
>>>             SIP Express Router (SER) and Kamailio (OpenSER) -
>>>             sr-users mailing list
>>>             sr-users@lists.sip-router.org
>>>             <mailto:sr-users@lists.sip-router.org>
>>>             http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>>>
>>>
>>>
>>>
>>>         -- 
>>>         Cumprimentos
>>>         José Seabra
>>
>>         -- 
>>         Daniel-Constantin Mierla
>>         http://www.asipto.com - http://www.kamailio.org
>>         http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> - 
>> http://www.linkedin.com/in/miconda
>>
>>
>>
>>
>>     -- 
>>     Cumprimentos
>>     José Seabra
>
>     -- 
>     Daniel-Constantin Mierla
>     http://www.asipto.com - http://www.kamailio.org
>     http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> - 
> http://www.linkedin.com/in/miconda
>
>
>
>
> -- 
> Cumprimentos
> José Seabra

-- 
Daniel-Constantin Mierla
http://www.asipto.com - http://www.kamailio.org
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to