Good evening.
INTRODUCTION:
-------------
We've traced an error, in our case, db_flatstore and siptrace
combination causes crash core.
siptrace module tries to check siptrace table version on a DB which has
no query capabilities and that causes the crash core.
This happens from kamailio-4.3.0 where db_check_table_version function
call is introduced on siptrace module.
OUR CONFIGURATION:
------------------
kamailio.cfg ->
...
#!define FLAT_DBURL "flatstore:/expert/siptrace-logs"
loadmodule "db_flatstore.so"
loadmodule "siptrace.so"
modparam("siptrace", "db_url", FLAT_DBURL)
modparam("siptrace", "trace_flag", 0)
modparam("siptrace", "trace_on", 1)
modparam("siptrace", "traced_user_avp", "$avp(s:user)")
...
ERROR FLOW:
-----------
siptrace.c -> if (db_check_table_version(&db_funcs, db_con,
&siptrace_table, SIP_TRACE_TABLE_VERSION) < 0)
db.c -> db_check_table_version
-> db_table_version(dbf, dbh, table);
-> dbf->query(connection, key, 0, val, col, 1, 1, 0, &res)
From this last funtion call each thread never returns and remains
blocked, and finally crashes with a nice core (it fullfills the entire
disk)
OUR SUGGESTION:
------------------
We can recommend developers not to call db_check_table_version if a
prior query of capabilities doesn't return: DB_CAP_QUERY.
We can do it for them on db_check_table_version function.
Thanks and best regards
Eduardo Lejarreta.
--
Dpto. Sistemas SARENET
Parque Tecnológico de Zamudio. Edif. 103 48170 Vizcaya Spain.
www.sarenet.es
Personal contact:
IT Manager & VoIP Engineer.
www.seeyouonnet.com
During re-registration, Diameter SAR message is sent to the HSS. It contains User-Data-Already-Available AVP, which by specification (TS 29.228, Table 6.1.2.1) instructs the HSS not to send subscription data. However when SAA is received without User-Data an error is generated. I think this behavior is not correct.
This patch modifies SAA handling so it doesn't try to update local ims subscription information, for the case where there is none received from the HSS.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/630
-- Commit Summary --
* ims_registar_scscf: Fix subscr data handling in SAA
-- File Changes --
M modules/ims_registrar_scscf/cxdx_sar.c (23)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/630.patchhttps://github.com/kamailio/kamailio/pull/630.diff
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/pull/630
Module: kamailio
Branch: master
Commit: 0a149060aa4a1dfce119a4907a4bb2b334079127
URL: https://github.com/kamailio/kamailio/commit/0a149060aa4a1dfce119a4907a4bb2b…
Author: Olle E. Johansson <oej(a)edvina.net>
Committer: Olle E. Johansson <oej(a)edvina.net>
Date: 2016-05-24T15:18:24+02:00
snmpstats Add improved explanation of memory usage
Issue #636
---
Modified: modules/snmpstats/README
Modified: modules/snmpstats/doc/snmpstats_admin.xml
---
Diff: https://github.com/kamailio/kamailio/commit/0a149060aa4a1dfce119a4907a4bb2b…
Patch: https://github.com/kamailio/kamailio/commit/0a149060aa4a1dfce119a4907a4bb2b…
---
diff --git a/modules/snmpstats/README b/modules/snmpstats/README
index 12d2c31..dbc1e43 100644
--- a/modules/snmpstats/README
+++ b/modules/snmpstats/README
@@ -417,6 +417,12 @@ modparam("snmpstats", "snmpCommunity", "customCommunityString")
parameter is set to 1. This will result in more memory usage and bigger
exporter structure.
+ If you enable this setting and NOT use it (i.e. not check the SNMP
+ tables for registrations) an internal memory queue of usrloc changes
+ will keep growing in shared (core) memory. To release the queue memory,
+ run snmpwalk or use a monitoring tool to check the tables with regular
+ intervals.
+
Default value is "0" (don't export).
Example 1.8. Setting the export_registrar parameter
diff --git a/modules/snmpstats/doc/snmpstats_admin.xml b/modules/snmpstats/doc/snmpstats_admin.xml
index 71a7b61..6789a37 100644
--- a/modules/snmpstats/doc/snmpstats_admin.xml
+++ b/modules/snmpstats/doc/snmpstats_admin.xml
@@ -440,6 +440,13 @@ modparam("snmpstats", "snmpCommunity", "customCommunityString")
this parameter is set to 1. This will result in more memory usage
and bigger exporter structure.
</para>
+ <para>
+ If you enable this setting and NOT use it (i.e. not check the SNMP tables
+ for registrations) an internal memory queue of usrloc changes will
+ keep growing in shared (core) memory. To release the queue memory,
+ run snmpwalk or use a monitoring tool to check the tables with
+ regular intervals.
+ </para>
<para>
<emphasis>
SNMPstats has a queued buffer that contains registration changes based on callbacks from usrloc. If one loads SNMPstats this queue grows forever and is only emptied when someone actually calls exactly the right parts of the MIB. At that time the queue is processed and an internal copy of the location table is produced and published. If one uses other parts of the MIB the queue keeps growing.
This can be turned off by disabling the modparam "Export_registrar".
Proposed changes:
- Improve the README
- Check if the processing of the queue can happen on timer instead of waiting for accidental checks.
---
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/635