[SR-Users] ht_db_load_table(): key type must be string (type=6)

Ginhoux, Patrick patrick.ginhoux at fr.unisys.com
Tue Mar 21 11:12:18 CET 2017


Hi,

A second update for people who started to look at this issue.

I have identified the real cause of the problem by looking more in the kamailio log with the debug traces. I discover that it is related to the load of the properties table in the htable.

I have the following entries in my mysql db :

+-------+----------------+---------------------------------------------------------+------------+----------+
| id    | key_name       | key_value                                               | value_type | key_type |
+-------+----------------+---------------------------------------------------------+------------+----------+
|     0 | VERSION        | 120104-1734                                             |          0 |        0 |
|     1 | mmm-retry      | 408=Y;502=Y;503=Y                                       |          0 |        0 |
|     2 | mgcf-retry     | 408=Y;502=Y;503=Y                                       |          0 |        0 |
|     3 | max-mmm-retry  | 2                                                       |          0 |        0 |
|     4 | max-mgcf-retry | 2                                                       |          0 |        0 |
|     5 | target-uri     | mgcf=10.10.10.10;mmm-legacy=20.20.20.10;mmm=20.20.20.20 |          0 |        0 |
|     6 | pike-status    | 503 Service Overload                                    |          0 |        0 |
|     7 | mgcf-path      | 99                                                      |          0 |        0 |
|    16 | mmm-nodeid     | OPMMMS1VSE01=1;OPMMMS1VSE02=2                           |          0 |        0 |
|    17 | mmm-node-path  | 1=1;2=2                                                 |          0 |        0 |
+-------+----------------+---------------------------------------------------------+------------+----------+

In the kamailio.cfg, the << modparam("htable", "htable", "propertiesHash=>size=4;dbtable=properties;") >> command causes the load of the above table in the htable.

In the log we can see, that the load is done in the alphabetic order of the key_name and it fails to load the last entry "VERSION" :

Mar 21 10:25:28 localhost /usr/sbin/kamailio[5784]: DEBUG: <core> [db_val.c:169]: db_str2val(): converting BLOB [VERSION]
Mar 21 10:25:28 localhost /usr/sbin/kamailio[5784]: DEBUG: <core> [db_val.c:74]: db_str2val(): converting INT [0]
Mar 21 10:25:28 localhost /usr/sbin/kamailio[5784]: DEBUG: <core> [db_val.c:74]: db_str2val(): converting INT [0]
Mar 21 10:25:28 localhost /usr/sbin/kamailio[5784]: DEBUG: <core> [db_val.c:169]: db_str2val(): converting BLOB [120104-1734]
Mar 21 10:25:28 localhost /usr/sbin/kamailio[5784]: ERROR: htable [ht_db.c:276]: ht_db_load_table(): key type must be string (type=6)

If I add a new entry named "WWWWW", then the failure occurs on this entry that is the last alphabetic entry :

| 10000 | WWWWW          | toto                                                    |          0 |        0 |

Mar 21 10:28:45 localhost /usr/sbin/kamailio[5817]: DEBUG: <core> [db_val.c:169]: db_str2val(): converting BLOB [WWWWW]
Mar 21 10:28:45 localhost /usr/sbin/kamailio[5817]: DEBUG: <core> [db_val.c:74]: db_str2val(): converting INT [0]
Mar 21 10:28:45 localhost /usr/sbin/kamailio[5817]: DEBUG: <core> [db_val.c:74]: db_str2val(): converting INT [0]
Mar 21 10:28:45 localhost /usr/sbin/kamailio[5817]: DEBUG: <core> [db_val.c:169]: db_str2val(): converting BLOB [toto]
Mar 21 10:28:45 localhost /usr/sbin/kamailio[5817]: ERROR: htable [ht_db.c:276]: ht_db_load_table(): key type must be string (type=6)

Attached the kamailio log for each test.

I hope this help.

Have anyone an idea of this problem ?

Cordialement
Patrick GINHOUX

De : Ginhoux, Patrick
Envoyé : mardi 21 mars 2017 09:41
À : Kamailio users (sr-users at lists.sip-router.org) <sr-users at lists.sip-router.org>
Objet : RE: ht_db_load_table(): key type must be string (type=6)

Hi,

There was a mistake in the file attached ; the short kamailio.cfg file (that makes kamailio to start) was not the correct one; attached the correct one.

Have anyone an idea of this problem ?

Cordialement
Patrick GINHOUX

De : Ginhoux, Patrick
Envoyé : lundi 20 mars 2017 17:58
À : Kamailio users (sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>) <sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>>
Objet : RE: ht_db_load_table(): key type must be string (type=6)

Hi,

To figure out what causes this issue, I work to shorten my kamailio.cfg to contains loadmodule/modparam instructions for the  htable module only.

My first attempt (see kamailio.cfg.ok) shows that the problem doesn't occur.

In the second attempt (see kamailio.cfg.ko) I add instructions previously removed from the original .cfg file. I have determined that, depending on the instructions that follows the "modparam("htable", "fetch_rows", 1000)" line, the "key type must be string (type=6)" error occurs or not.
In this ko file, if I comment out the following sequence, the error occurs :

modparam("htable", "fetch_rows", 1000)
#!!ifdef FIXED_ROUTING
#modparam("htable", "htable", "mbxrangeHash=>size=4;dbtable=mbxrange;")
#!!else
#modparam("htable", "htable", "abpqHash=>size=12;dbtable=abpq;")
#modparam("htable", "htable", "zabpqHash=>size=12;dbtable=zabpq;")
#!!endif
modparam("htable", "htable", "propertiesHash=>size=4;dbtable=properties;")

I hope my explanation is clearn and there are people who can help me on this problem that causes kamailio to not start.


Cordialement
Patrick GINHOUX

De : Ginhoux, Patrick
Envoyé : vendredi 17 mars 2017 15:46
À : Kamailio users (sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>) <sr-users at lists.sip-router.org<mailto:sr-users at lists.sip-router.org>>
Objet : ht_db_load_table(): key type must be string (type=6)

Hi,

Now the kamailio installation is completed, I try to start kamailio but got an error on a modparam line.

By looking at the kamailio.cfg (with debug mode) it looks like the instruction is not correct :

modparam("htable", "fetch_rows", 1000)

[root at vm-vse02-siprouter1 ~]# systemctl status kamailio.service -l
kamailio.service - SYSV: Kamailio is a fast, reliable and flexible SIP Server.
   Loaded: loaded (/etc/rc.d/init.d/kamailio)
   Active: failed (Result: exit-code) since Fri 2017-03-17 15:38:13 CET; 17s ago
  Process: 1526 ExecStart=/etc/rc.d/init.d/kamailio start (code=exited, status=1/FAILURE)

Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: INFO: pike [pike.c:99]: pike_init(): PIKE - initializing
Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: INFO: pike [ip_tree.c:81]: init_lock_set(): probing 256 set size
Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: INFO: cfgutils [cfgutils.c:767]: mod_init(): no hash_file given, disable hash functionality
Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: ERROR: htable [ht_db.c:276]: ht_db_load_table(): key type must be string (type=6)
Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: ERROR: <core> [core/sr_module.c:968]: init_mod(): Error while initializing module htable (/usr/lib64/kamailio/modules/htable.so)
Mar 17 15:38:13 vm-vse02-siprouter1 /usr/sbin/kamailio[1539]: INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
Mar 17 15:38:13 vm-vse02-siprouter1 kamailio[1526]: Starting kamailio:
Mar 17 15:38:13 vm-vse02-siprouter1 systemd[1]: kamailio.service: control process exited, code=exited status=1
Mar 17 15:38:13 vm-vse02-siprouter1 systemd[1]: Failed to start SYSV: Kamailio is a fast, reliable and flexible SIP Server..
Mar 17 15:38:13 vm-vse02-siprouter1 systemd[1]: Unit kamailio.service entered failed state.
[root at vm-vse02-siprouter1 ~]#

modparam("htable", "fetch_rows", "1000")

[root at vm-vse02-siprouter1 ~]# systemctl status kamailio.service -l
kamailio.service - SYSV: Kamailio is a fast, reliable and flexible SIP Server.
   Loaded: loaded (/etc/rc.d/init.d/kamailio)
   Active: failed (Result: exit-code) since Fri 2017-03-17 15:26:21 CET; 3s ago
  Process: 1452 ExecStart=/etc/rc.d/init.d/kamailio start (code=exited, status=1/FAILURE)

Mar 17 15:26:20 vm-vse02-siprouter1 systemd[1]: Starting SYSV: Kamailio is a fast, reliable and flexible SIP Server....
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: Not starting : invalid configuration file!
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: 0(1460) ERROR: <core> [core/modparam.c:141]: set_mod_param_regex(): parameter <fetch_rows> of type <1> not found in module <htable>
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: 0(1460) CRITICAL: <core> [core/cfg.y:3404]: yyerror_at(): parse error in config file //etc/kamailio/kamailio.cfg, line 308, column 41: Can't set module parameter
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: 0(1460) WARNING: <core> [core/cfg.y:3378]: warn_at(): warning in config file //etc/kamailio/kamailio.cfg, line 971, column 6-13: constant value in if(...)
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: ERROR: bad config file (1 errors)
Mar 17 15:26:21 vm-vse02-siprouter1 kamailio[1452]: 0(1460) INFO: <core> [core/sctp_core.c:53]: sctp_core_destroy(): SCTP API not initialized
Mar 17 15:26:21 vm-vse02-siprouter1 systemd[1]: kamailio.service: control process exited, code=exited status=1
Mar 17 15:26:21 vm-vse02-siprouter1 systemd[1]: Failed to start SYSV: Kamailio is a fast, reliable and flexible SIP Server..
Mar 17 15:26:21 vm-vse02-siprouter1 systemd[1]: Unit kamailio.service entered failed state.
[root at vm-vse02-siprouter1 ~]#

The documentation shows that fetch_rows is an integer :
 fetch_rows (integer)
How many rows to fetch at once from database.
Default value is 100.
Example 1.12. Set fetch_rows parameter
...
modparam("htable", "fetch_rows", 1000)

So how to explain the first error.

Have you any thoughts on this case ?

Cordialement
Patrick GINHOUX

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170321/096e32b3/attachment.html>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Load properties table problem with last entry VERSION.txt
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170321/096e32b3/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: Load properties table problem with new last entry WWWWW.txt
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20170321/096e32b3/attachment-0001.txt>


More information about the sr-users mailing list