Hi!
We are using the t_uac_dlg function through a UDP MI Datagram to create local SIP/TCP requests. We are seeing a memory leak of increasing shared Memory usage, which is increasing at the same rate as tcp connections are created (tested under 4.0.1 and 4.3.1).
/usr/sbin/kamailio[25407]: NOTICE: fm_status: count= 71943 size= 14126536 bytes from mi_datagram: datagram_fnc.c: build_async_handler(387)
After looking at the memory dump and investigating the source, I guess that the memory leak is created, when the
MI_ASYNC_RPL_FLAG
is set. This seems to be set by:
modules/tmx/tmx_mod.c: {MI_TM_UAC, mi_tm_uac_dlg, MI_ASYNC_RPL_FLAG, 0, 0 },
only, which we are using heavily.
Can someone please give me a hint, where to search for the memory leak. My guess is that:
modules/mi_datagram/datagram_fnc.c:489
if (f->flags&MI_ASYNC_RPL_FLAG) {
hdl = build_async_handler(mi_socket_domain,
(struct sockaddr* )&reply_addr, reply_addr_len);
the handler is not correctly freed up in the async reply case.
Thank you!
Greetings
Torge Szczepanek
Hi,
i propose to add a change to registrar module so that it updates sip_msg.ruid on successfull save.
this will allow to get $ruid after save to forward the $ruid to other places.
thoughts ?
Hi guys.
I've noticed this CRITICAL log line on kamailio startup:
CRITICAL: dialog [dlg_cb.c:137]: register_dlgcb(): DLGCB_CREATED type
registered after shutdown!?!
This line started to show up after upgrade from 4.2.x to 4.3 and now to
4.3.1.
Everything seems to be working fine and a really don't see any harm
anywhere.
Could you please comment on this?
Cheers,
--
*Nuno Miguel Reis* | *Unified Communication** Systems*
M. +351 913907481 | nreis(a)wavecom.pt
WAVECOM-Soluções Rádio, S.A.
Cacia Park | Rua do Progresso, Lote 15
3800-639 AVEIRO | Portugal
T. +351 309 700 225 | F. +351 234 919 191
*GPS
<http://maps.google.com/maps/ms?msa=0&msid=202333747613191340808.0004b4b227a…>
| www.wavecom.pt <http://www.wavecom.pt/>** <http://www.wavecom.pt/>*
<http://www.wavecom.pt/>
<http://www.wavecom.pt/pt/>
Module: kamailio
Branch: master
Commit: 0868ed0ef12e65c7790beeccf139b5fdc245efdb
URL: https://github.com/kamailio/kamailio/commit/0868ed0ef12e65c7790beeccf139b5f…
Author: Camille Oudot <camille.oudot(a)orange.com>
Committer: Camille Oudot <camille.oudot(a)orange.com>
Date: 2015-08-12T17:33:00+02:00
auth: modify doc to reflect current implementation
---
Modified: modules/auth/doc/auth_functions.xml
---
Diff: https://github.com/kamailio/kamailio/commit/0868ed0ef12e65c7790beeccf139b5f…
Patch: https://github.com/kamailio/kamailio/commit/0868ed0ef12e65c7790beeccf139b5f…
---
diff --git a/modules/auth/doc/auth_functions.xml b/modules/auth/doc/auth_functions.xml
index ec33324..225dbb3 100644
--- a/modules/auth/doc/auth_functions.xml
+++ b/modules/auth/doc/auth_functions.xml
@@ -204,10 +204,6 @@ if (!auth_check("$fd", "subscriber", "1")) {
<emphasis>-2 (invalid password)</emphasis> - wrong password
</para></listitem>
<listitem><para>
- <emphasis>-3 (invalid user)</emphasis> - authentication user does
- not exist
- </para></listitem>
- <listitem><para>
<emphasis>-4 (nonce expired)</emphasis> - the nonce has expired
</para></listitem>
<listitem><para>
@@ -218,10 +214,6 @@ if (!auth_check("$fd", "subscriber", "1")) {
<emphasis>-6 (nonce reused)</emphasis> - the nonce has already been
used to authenticate a previous request
</para></listitem>
- <listitem><para>
- <emphasis>-8 (auth user mismatch)</emphasis> - the auth user is different
- then the From/To user
- </para></listitem>
</itemizedlist>
<para>Meaning of the parameters is as follows:</para>
<itemizedlist>
@@ -357,6 +349,13 @@ if (!pv_proxy_authenticate("$fd", "$avp(password)", "0")) {
request or not. The parameter may be a pseudo variable.
</para>
<para>
+ The set of possible return codes is the same than pv_{www,proxy}_authenticate, with
+ one more possible value:
+ <para><emphasis>-8 (auth user mismatch)</emphasis> - the auth user is different
+ than the From/To user
+ </para>
+ </para>
+ <para>
This function can be used from REQUEST_ROUTE.
</para>
<example>
Module: kamailio
Branch: 4.3
Commit: 48d78ce87e2f42bdc77e688a0f45ff725ea97de5
URL: https://github.com/kamailio/kamailio/commit/48d78ce87e2f42bdc77e688a0f45ff7…
Author: Camille Oudot <camille.oudot(a)orange.com>
Committer: Camille Oudot <camille.oudot(a)orange.com>
Date: 2015-08-12T17:40:24+02:00
auth: modify doc to reflect current implementation
(cherry picked from commit 0868ed0ef12e65c7790beeccf139b5fdc245efdb)
---
Modified: modules/auth/doc/auth_functions.xml
---
Diff: https://github.com/kamailio/kamailio/commit/48d78ce87e2f42bdc77e688a0f45ff7…
Patch: https://github.com/kamailio/kamailio/commit/48d78ce87e2f42bdc77e688a0f45ff7…
---
diff --git a/modules/auth/doc/auth_functions.xml b/modules/auth/doc/auth_functions.xml
index ec33324..225dbb3 100644
--- a/modules/auth/doc/auth_functions.xml
+++ b/modules/auth/doc/auth_functions.xml
@@ -204,10 +204,6 @@ if (!auth_check("$fd", "subscriber", "1")) {
<emphasis>-2 (invalid password)</emphasis> - wrong password
</para></listitem>
<listitem><para>
- <emphasis>-3 (invalid user)</emphasis> - authentication user does
- not exist
- </para></listitem>
- <listitem><para>
<emphasis>-4 (nonce expired)</emphasis> - the nonce has expired
</para></listitem>
<listitem><para>
@@ -218,10 +214,6 @@ if (!auth_check("$fd", "subscriber", "1")) {
<emphasis>-6 (nonce reused)</emphasis> - the nonce has already been
used to authenticate a previous request
</para></listitem>
- <listitem><para>
- <emphasis>-8 (auth user mismatch)</emphasis> - the auth user is different
- then the From/To user
- </para></listitem>
</itemizedlist>
<para>Meaning of the parameters is as follows:</para>
<itemizedlist>
@@ -357,6 +349,13 @@ if (!pv_proxy_authenticate("$fd", "$avp(password)", "0")) {
request or not. The parameter may be a pseudo variable.
</para>
<para>
+ The set of possible return codes is the same than pv_{www,proxy}_authenticate, with
+ one more possible value:
+ <para><emphasis>-8 (auth user mismatch)</emphasis> - the auth user is different
+ than the From/To user
+ </para>
+ </para>
+ <para>
This function can be used from REQUEST_ROUTE.
</para>
<example>