Hi devs,
I'm trying to make the db_cassandra work for my kamailio specifically userblacklist module.
I've cassanda keyspace and tables defined along with the db_schema directory structure defined as instructed however the debug logs keep telling me that table 'version' doesn't exist.
I've taken a look inside the dbcassa_table.c file
https://github.com/kamailio/kamailio/blob/master/modules/db_cassandra/dbcas…
Somewhere in this function it just doesn't get hold of "tbc" and hence it throws up error.
Here is how I've figured out this code.
hash = core_hash(dbn, tbn, DBCASSA_TABLE_SIZE);
**if(!hash)
LM_ERR("hash NOT FOUND\n");**
hashidx = hash % DBCASSA_TABLE_SIZE;
**if(!hashidx)
LM_ERR("hashidx NOT FOUND\n");**
ref_read_data(dbcassa_tbl_htable[hashidx].lock);
tbc = dbcassa_tbl_htable[hashidx].dtp;
**if(!tbc)
LM_ERR("TBC NOT FOUND\n");**
while(tbc) {
LM_DBG("found dbname=%.*s, table=%.*s\n", tbc->dbname.len, tbc->dbname.s, tbc->name.len, tbc->name.s);
if(tbc->hash==hash && tbc->dbname.len == dbn->len
&& tbc->name.len == tbn->len
&& !strncasecmp(tbc->dbname.s, dbn->s, dbn->len)
&& !strncasecmp(tbc->name.s, tbn->s, tbn->len)) {
memcpy(full_path_buf + dbcassa_schema_path.len, dbn->s, dbn->len);
len = dbcassa_schema_path.len + dbn->len;
full_path_buf[len++] = '/';
memcpy(full_path_buf + len, tbn->s, tbn->len);
full_path_buf[len + tbn->len] = '\0';
if(dbcassa_check_mtime(&tbc->mt) == 0)
return tbc;
old_tbc = tbc;
break;
}
tbc = tbc->next;
}
unref_read_data(dbcassa_tbl_htable[hashidx].lock);
**if(!old_tbc) {
LM_ERR("OLD_TBC NOT FOUND\n");**
return NULL;
}
and upon starting of kamailio after recompiling the module I see these lines printed.
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:149]: db_cassa_new_connection(): opening connection: cassa://xxxx:xxxx@127.0.0.1:9160/kamailio
0(15574) DEBUG: <core> [mem/f_malloc.c:439]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) called from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)
0(15574) DEBUG: <core> [mem/f_malloc.c:514]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) returns address 0x7f9c150055f0
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:161]: db_cassa_new_connection(): 0x7f9c150055f0=pkg_malloc(48)
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:117]: dbcassa_open(): Opened connection to Cassandra cluster 127.0.0.1:9160
0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:955]: db_cassa_query(): query table=version
**0(15574) ERROR: db_cassandra [dbcassa_table.c:463]: dbcassa_db_get_table(): TBC NOT FOUND
0(15574) ERROR: db_cassandra [dbcassa_table.c:486]: dbcassa_db_get_table(): OLD_TBC NOT FOUND**
0(15574) ERROR: db_cassandra [dbcassa_base.cpp:449]: cassa_translate_query(): table version does not exist!
0(15574) ERROR: db_cassandra [dbcassa_base.cpp:962]: db_cassa_query(): Failed to query Cassandra cluster
0(15574) ERROR: <core> [db.c:397]: db_table_version(): error in db_query
0(15574) ERROR: <core> [db.c:436]: db_check_table_version(): querying version for table userblacklist
0(15574) ERROR: userblacklist [db_userblacklist.c:86]: userblacklist_db_init(): during table version check.
0(15574) DEBUG: <core> [db_pool.c:100]: pool_remove(): removing connection from the pool
0(15574) DEBUG: <core> [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c150055f0), called from db_cassandra: dbcassa_base.cpp: db_cassa_free_connection(203)
0(15574) DEBUG: <core> [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)
0(15574) DEBUG: <core> [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c15005318), called from core: db.c: db_do_close(356)
0(15574) DEBUG: <core> [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from core: db.c: db_do_init2(298)
0(15574) ERROR: <core> [sr_module.c:968]: init_mod(): Error while initializing module userblacklist (/usr/local/lib64/kamailio/modules/userblacklist.so)
ERROR: error while initializing modules
Kindly look into this and let me know how to make this work.
Thanks,
Sammy
---
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/618
This is a snip from the user's mailing list, I'm just adding it to the issue tracker, as it is yet to be confirmed as a bug, only here for tracking pruporses:
```
I have a situation where I have 2 devices registering with the same AOR, I have the registrar module's max_contacts parameter set to 1 and I use the 0x04 flag on the save function.
When I use dmq_usrloc for replication, I can see 2 contacts registered for the AOR on the "client" nodes whereas the node where the actual registration took place only has 1 contact for the AOR.
```
```
It seems to me like another bug, although again I'm not familiar with the module so can't be sure without looking that it is not intended behaviour.
I plan to look later this week when I have some time but in the meantime, you can send me the examples directly if you like.
```
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/265
Kamailio takes care of sending in-dialog keep-alives using OPTIONS when dlg_set_attribute ka-src and ka-dst is used. It also sends OPTIONS to correct address if a client sends Re-Invite indicating a network change, which is a common case with mobile clients (switching between mobile-data and Wifi) fixed in #273
The problem is that it ends the dialog on missing even one keep-alive response. Missing a response is possible when the client is handling the network change and keep-alive is sent around that time.
Thus, having a configurable counter after which you expect to end the dialog might be helpful. For eg. you decide to end the dialog after we miss 3 responses for keep-alives in a row.
Something like dlg_set_attribute(ka-src, 3) where 3 indicates the number of responses that can be missed before ending the dialog.
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/438
> Add "-fno-strict-aliasing" to compilation flags
>
> Fixes a slew of:
> "dereferencing type-punned pointer will break strict-aliasing rules"
> warnings from GCC for lines of the form:
> Py_INCREF(Py_True);
> and
> Py_INCREF(Py_False);
>
> due to the cast from PyIntObject* to PyObject*
>
> GCC is technically correct here; see:
> http://www.python.org/dev/peps/pep-3123/
> though this is unlikely to lead to non-working machine code.
You can view, comment on, or merge this pull request online at:
https://github.com/kamailio/kamailio/pull/924
-- Commit Summary --
* app_python: fix compiler warning
-- File Changes --
M src/modules/app_python/Makefile (2)
-- Patch Links --
https://github.com/kamailio/kamailio/pull/924.patchhttps://github.com/kamailio/kamailio/pull/924.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/924
Kamailio had an abort happend and does a coredump. Sorry I doesn't have debug symbols on this machine.
Kamailio:
```
root@voip-integration-cust1:~ # kamailio -V
version: kamailio 4.4.0 (amd64/freebsd) d4f23c
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_PTHREAD_MUTEX, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, select, kqueue.
id: d4f23c
compiled on 16:52:24 Apr 30 2016 with clang 3.4
```
Log:
```
May 4 17:55:27 <local0.crit> voip-integration-cust1 kamailio[1177]: CRITICAL: <core> [pass_fd.c:275]: receive_fd(): EOF on 12
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1147 (kamailio), uid 986: exited on signal 6 (core dumped)
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1146 (kamailio), uid 986: exited on signal 6 (core dumped)
May 4 17:55:27 <local0.alert> voip-integration-cust1 kamailio[1145]: ALERT: <core> [main.c:739]: handle_sigs(): child process 1147 exited by a signal 6
May 4 17:55:27 <local0.alert> voip-integration-cust1 kamailio[1145]: ALERT: <core> [main.c:742]: handle_sigs(): core was generated
May 4 17:55:27 <kern.info> voip-integration-cust1 kernel: pid 1148 (kamailio), uid 986: exited on signal 6 (core dumped)
```
Backtrace:
```
#0 0x000000080110235a in thr_kill () from /lib/libc.so.7
#1 0x0000000801102346 in raise () from /lib/libc.so.7
#2 0x00000008011022c9 in abort () from /lib/libc.so.7
#3 0x0000000800e3195a in pthread_attr_getaffinity_np () from /lib/libthr.so.3
#4 0x0000000800e2d046 in pthread_mutex_destroy () from /lib/libthr.so.3
#5 0x0000000805b436b5 in rpc_reply () from /usr/local/lib/kamailio/modules/tm.so
#6 0x0000000805b23f18 in tm_reply_mutex_lock () from /usr/local/lib/kamailio/modules/tm.so
#7 0x0000000805b34ba2 in reply_received () from /usr/local/lib/kamailio/modules/tm.so
#8 0x000000000057146b in forward_reply ()
#9 0x0000000000570cca in forward_reply ()
#10 0x00000000004682a4 in receive_msg ()
#11 0x0000000000645023 in udp_rcv_loop ()
#12 0x0000000000543cad in main_loop ()
#13 0x00000000005519a5 in main ()
```
---
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/604
I would like the URI transformations to be more generic so one can pick up the URI scheme, like HTTP: or TEL:
Just an idea
---
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/592
ENV: Debian 8
So on most Linux systems the /var/run folder is a tmpfs and after which clears after each reboot
As I try to start up kamailio after a reboot through kamctl I get the following error.
"ERROR: PID file /var/run/kamailio.pid does not exist -- Kamailio start failed"
Because kamailio does not have the permission to write to the /var/run folder as the kamailio user.
Would it be possible to add in the "kamctl" code a section where the SPECIFIED PID LOCATION (/var/run/kamailio) is checked and if it does not exist create it as the root user and chown it to the SPECIFIED USER (kamailio)? The way I have patched it for now is to create a init script that creates a /var/run/kamailio folder and chmods it to kamailio:kamailio
Thanks everyone!
---
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/231
### Description
Config file has parameter "shm_mem_size" (or "shm" or "shm_mem") which allows to set shared memory size (in Mb) via configuration file. This parameter worked well in 3.1.5. Now it does not work (4.4.2). Shared memory size is always 64Mb (default value). The only way to set another size is to use "-m" command line option.
#### Reproduction
- Set shm_mem_size=512 in configuration file
- Start kamailio and check size of shared memory using "kamcmd core.shmmem"
- Expected result: total size of shared memory should be 512 Mb (in bytes)
- Actual result: 64Mb
### Possible Solutions
A workaround is to use "-m" command line option to send shared memeory size.
### Additional Information
version: kamailio 4.4.3 (x86_64/linux) 5a2195
flags: STATS: Off, USE_TCP, USE_TLS, USE_SCTP, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, Q_MALLOC, F_MALLOC, TLSF_MALLOC, DBG_SR_MEMORY, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES
ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 8MB
poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.
id: 5a2195
compiled on 13:41:22 Sep 27 2016 with gcc 4.4.7
OS: CentOS 6.8 (kernel 2.6.32-642.4.2.el6.x86_64)
--
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/950