<p>Hi devs,</p>

<p>I'm trying to make the db_cassandra work for my kamailio specifically userblacklist module.</p>

<p>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.</p>

<p>I've taken a look inside the dbcassa_table.c file <br>
<a href="https://github.com/kamailio/kamailio/blob/master/modules/db_cassandra/dbcassa_table.c#L441">https://github.com/kamailio/kamailio/blob/master/modules/db_cassandra/dbcassa_table.c#L441</a></p>

<p>Somewhere in this function it just doesn't get hold of "tbc" and hence it throws up error.</p>

<p>Here is how I've figured out this code.</p>

<pre><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;
    }
</code></pre>

<p>and upon starting of kamailio after recompiling the module I see these lines printed.</p>

<p>0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:149]: db_cassa_new_connection(): opening connection: cassa://xxxx:xxxx@127.0.0.1:9160/kamailio<br>
 0(15574) DEBUG:  [mem/f_malloc.c:439]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) called from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)<br>
 0(15574) DEBUG:  [mem/f_malloc.c:514]: fm_malloc(): fm_malloc(0x7f9c14f8a010, 48) returns address 0x7f9c150055f0<br>
 0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:161]: db_cassa_new_connection(): 0x7f9c150055f0=pkg_malloc(48)<br>
 0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:117]: dbcassa_open(): Opened connection to Cassandra cluster  127.0.0.1:9160<br>
 0(15574) DEBUG: db_cassandra [dbcassa_base.cpp:955]: db_cassa_query(): query table=version<br>
 <strong>0(15574) ERROR: db_cassandra [dbcassa_table.c:463]: dbcassa_db_get_table(): TBC NOT FOUND<br>
 0(15574) ERROR: db_cassandra [dbcassa_table.c:486]: dbcassa_db_get_table(): OLD_TBC NOT FOUND</strong><br>
 0(15574) ERROR: db_cassandra [dbcassa_base.cpp:449]: cassa_translate_query(): table version does not exist!<br>
 0(15574) ERROR: db_cassandra [dbcassa_base.cpp:962]: db_cassa_query(): Failed to query Cassandra cluster<br>
 0(15574) ERROR:  [db.c:397]: db_table_version(): error in db_query<br>
 0(15574) ERROR:  [db.c:436]: db_check_table_version(): querying version for table userblacklist<br>
 0(15574) ERROR: userblacklist [db_userblacklist.c:86]: userblacklist_db_init(): during table version check.<br>
 0(15574) DEBUG:  [db_pool.c:100]: pool_remove(): removing connection from the pool<br>
 0(15574) DEBUG:  [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c150055f0), called from db_cassandra: dbcassa_base.cpp: db_cassa_free_connection(203)<br>
 0(15574) DEBUG:  [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from db_cassandra: dbcassa_base.cpp: db_cassa_new_connection(155)<br>
 0(15574) DEBUG:  [mem/f_malloc.c:575]: fm_free(): fm_free(0x7f9c14f8a010, 0x7f9c15005318), called from core: db.c: db_do_close(356)<br>
 0(15574) DEBUG:  [mem/f_malloc.c:594]: fm_free(): fm_free: freeing block alloc'ed from core: db.c: db_do_init2(298)<br>
 0(15574) ERROR:  [sr_module.c:968]: init_mod(): Error while initializing module userblacklist (/usr/local/lib64/kamailio/modules/userblacklist.so)<br>
ERROR: error while initializing modules</p>

<p>Kindly look into this and let me know how to make this work.</p>

<p>Thanks,<br>
Sammy </p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br />You are receiving this because you are subscribed to this thread.<br />Reply to this email directly or <a href="https://github.com/kamailio/kamailio/issues/618">view it on GitHub</a><img alt="" height="1" src="https://github.com/notifications/beacon/AF36ZVO5fJy8u_-Nvodxwgyk6Dw1H7axks5qA3pagaJpZM4IdYdQ.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/kamailio/kamailio/issues/618"></link>
  <meta itemprop="name" content="View Issue"></meta>
</div>
<meta itemprop="description" content="View this Issue on GitHub"></meta>
</div>