Hello,

indeed the previous commit was destroying a single avp, I pushed a new
one to destroy all of them with that name. I am wondering if all avps,
no matter the name should be destroyed.


Anyhow, could you fetch the latest git master version and try your
scenario again?


Cheers,
Daniel


On 16.07.24 16:11, Vanderlei Torres Batistela wrote:
> Hello Daniel,
>
> I tried with git master branch and it works only for a simple
> event-route script where avp(msg) is not modified as below:
>
>
> # event route
> event_route[network:msg] {
>
>     xlog("L_INFO", " Event_Route \n");
>     if (is_incoming()) {
>         xlog("L_INFO", "Received message '$mb' \n");
>         $avp(msg) = $mb;
>         xinfo("avp(msg) = $avp(msg)");
>     } else {
>         xlog("L_INFO", "Sending message '$mb' \n");
>         $avp(msg) = $mb;
>         xinfo("avp(msg) = $avp(msg)");
>      }
> }
>
>
> Then I tried it using this script as an example to set the message to
> send out:
>
> # event route
> event_route[network:msg] {
>
>     xlog("L_INFO", " Event_Route \n");
>     if (is_incoming()) {
>         xlog("L_INFO", "Received message '$mb' \n");
>         $avp(msg) = $mb;
>         xinfo("avp(msg) = $avp(msg)");
>     } else {
>         xlog("L_INFO", "Sending message '$mb' \n");
>         $avp(msg) = $mb;
>         xinfo("var(x)= $var(x)");
>         $var(x)="a=3gOoBTC" + "\r" + "\n";
>         $avp(msg) = $(avp(msg){s.replace,$var(x),});
>         avp_print();
>      }
> }
>
> Examining the attached log I saw that for each INVITE retransmission
> (handled by another processor-pid) the avp (msg) is not freed and is
> accumulated.
> So I modified the script to delete the avp(msg) before using it and
> that fixed the issue.
>
> 2) Delete avp(msg) before using it
>
> # event route
> event_route[network:msg] {
>
>     xlog("L_INFO", " Event_Route \n");
>     if (is_incoming()) {
>         xlog("L_INFO", "Received message '$mb' \n");
>         $avp(msg) = $mb;
>         xinfo("avp(msg) = $avp(msg)");
>     } else {
>         xlog("L_INFO", "Sending message '$mb' \n");
>         $(avp(msg)[*]) = $null;    
> <----------------------------------------------
>         $avp(msg) = $mb;
>         xinfo("var(x)= $var(x)");
>         $var(x)="a=3gOoBTC" + "\r" + "\n";
>         $avp(msg) = $(avp(msg){s.replace,$var(x),});
>         avp_print();
>      }
> }
>
>
> This workaround also fixed the issue in the original 5.8.2 version.
>
> Regards,
>
> Vanderlei
>
>
>
>
> ------------------------------------------------------------------------
> *De:* Daniel-Constantin Mierla <[email protected]>
> *Enviado:* quarta-feira, 10 de julho de 2024 07:05
> *Para:* Kamailio (SER) - Users Mailing List <[email protected]>
> *Cc:* Vanderlei Torres Batistela <[email protected]>
> *Assunto:* Re: [SR-Users] Possible Kamailio memmory leak - version 5.8.2
>  
> Hello,
>
> I couldn't spot any error message in the log file that you attached,
> have you taken it when you encountered the problem?
>
> Anyhow, I am not familiar with the implementation of the
> event_route[network:msg], but the shm info indicates the leak to be
> related to avp, so I pushed a patch to destroy the nio_msg_avp avp
> after event route execution. Can you try with git master branch and
> see if works ok?
>
> Cheers,
> Daniel
>
> On 02.07.24 16:24, Vanderlei Torres Batistela via sr-users wrote:
>
>     Hello all,
>
>     I am using a very simple scritp with corex module enabled .
>      Normal calls works fine, but a scenario where INVITE does not
>     receive response and the call is released with SIP 408 (request
>     timeout) leads to memmory leak.  I verified it making a lot of 
>     calls with this scenario and printing the  shared memory (using
>     kamcmd core.shmmem) .  Its ocurred with modparam("corex",
>     "nio_intercept", 1).
>      If  I modify to modparam("corex", "nio_intercept", 0) the memmory
>     leak does not ocurr anymore.
>     The problem also occurs in another scenario where the SIP Cancel
>     message is not responded to.
>
>     My script has this event route
>      
>     # event route
>     event_route[network:msg] {
>
>         xlog("L_INFO", "Dentro do Event_Route \n");
>         if (is_incoming()) {
>             xlog("L_INFO", "Received message '$mb' \n");
>             $avp(msg) = $mb;
>             xinfo("avp(msg) = $avp(msg)");
>         } else {
>             xlog("L_INFO", "Sending message '$mb' \n");
>              $avp(msg) = $mb;
>         };
>     }
>
>     Test done wtih 4000 calls:
>
>     [root@labcom070 kamailio]# kamctl stats shmem
>     {
>       "jsonrpc":  "2.0",
>       "result": [
>         "shmem:fragments = 900",
>         "shmem:free_size = 6180368",
>         "shmem:max_used_size = 66980272",
>         "shmem:real_used_size = 60928496",
>         "shmem:total_size = 67108864",
>         "shmem:used_size = 54884944"
>       ],
>       "id": 393115
>     }
>
>
>     [root@labcom070 kamailio]# kamcmd mod.stats all shm
>     Module: core
>     {
>             create_avp(178): 52257504
>             counters_prefork_init(211): 53760
>             cfg_clone_str(132): 112
>             cfg_shmize(221): 832
>             main_loop(1381): 16
>             init_pt(104): 16
>             init_pt(103): 16
>             init_pt(102): 6224
>             cfg_register_ctx(47): 96
>             init_tcp(5197): 8192
>             init_tcp(5191): 32768
>             init_tcp(5182): 16
>             init_tcp(5175): 16
>             init_tcp(5167): 16
>             init_tcp(5161): 16
>             init_tcp(5149): 16
>             init_avps(92): 16
>             init_avps(91): 16
>             init_dst_blocklist(435): 16384
>             init_dst_blocklist(427): 16
>             timer_alloc(494): 96
>             init_dns_cache(368): 16
>             init_dns_cache(359): 16384
>             init_dns_cache(351): 16
>             init_dns_cache(343): 16
>             init_timer(264): 16
>             init_timer(263): 16384
>             init_timer(262): 16
>             init_timer(261): 16
>             init_timer(250): 16
>             init_timer(218): 16
>             init_timer(207): 278544
>             init_timer(206): 16
>             init_timer(194): 16
>             cfg_child_cb_new(832): 64
>             sr_cfg_init(371): 16
>             sr_cfg_init(364): 16
>             sr_cfg_init(356): 16
>             sr_cfg_init(344): 16
>             sr_cfg_init(332): 16
>             ksr_shutdown_phase_init(123): 16
>             rpc_hash_add(118): 16
>             qm_shm_lock_init(1463): 16
>             Total: 52687808
>     }
>
>      I attached  my kamailio  script used and a log with one call  
>     using the command "kamcmd corex.shm_summary" with
>     modparam("corex", "nio_intercept", 1)
>     and  modparam("corex", "nio_intercept", 0)
>
>     Regards,
>
>     Vanderlei
>
>
>
>
>     __________________________________________________________
>     Kamailio - Users Mailing List - Non Commercial Discussions To
>     unsubscribe send an email to [email protected]
>     <mailto:[email protected]> Important: keep the
>     mailing list in the recipients, do not reply only to the sender!
>     Edit mailing list options or unsubscribe:
>
>
> -- Daniel-Constantin Mierla (@ asipto.com) twitter.com/miconda --
> linkedin.com/in/miconda Kamailio Consultancy, Training and Development
> Services -- asipto.com

-- 
Daniel-Constantin Mierla (@ asipto.com)
twitter.com/miconda -- linkedin.com/in/miconda
Kamailio Consultancy, Training and Development Services -- asipto.com
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to [email protected]
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to