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
Module: kamailio
Branch: master
Commit: 52a8def8d2a3e83170ab554a85b26d977d99f51a
URL: https://github.com/kamailio/kamailio/commit/52a8def8d2a3e83170ab554a85b26d9…
Author: Daniel-Constantin Mierla <miconda(a)gmail.com>
Committer: Daniel-Constantin Mierla <miconda(a)gmail.com>
Date: 2018-02-14T11:24:37+01:00
utils: kamdbctl - updated help message for migrate command
---
Modified: utils/kamctl/kamdbctl.base
---
Diff: https://github.com/kamailio/kamailio/commit/52a8def8d2a3e83170ab554a85b26d9…
Patch: https://github.com/kamailio/kamailio/commit/52a8def8d2a3e83170ab554a85b26d9…
---
diff --git a/utils/kamctl/kamdbctl.base b/utils/kamctl/kamdbctl.base
index 2abde29d26..13af37e7c6 100644
--- a/utils/kamctl/kamdbctl.base
+++ b/utils/kamctl/kamdbctl.base
@@ -97,7 +97,7 @@ usage: $COMMAND create <db name or db_path, optional> ...(creates a new database
$COMMAND backup <file> ...........................(dumps current database to file)
$COMMAND restore <file> ..........................(restores tables from a file)
$COMMAND copy <new_db> ...........................(creates a new db from an existing one)
- $COMMAND migrate <old_db> <new_db> ...............(migrates DB from 1.2 to 1.3, not implemented yet!)
+ $COMMAND migrate <old_db> <new_db> ...............(migrates DB - no longer maintained!)
$COMMAND presence ................................(adds the presence related tables)
$COMMAND extra ...................................(adds the extra tables)
$COMMAND dbuid ...................................(adds the uid tables)