I added this to my config to try and it caused a segfault on startup in sql_query.

It seems the db connection is not initialised at this point.

 

(gdb) bt

#0  0x0000000000000000 in ?? ()

#1  0x00007f47450517ef in sql_do_query (con=0x7f474d573930, query=0x7ffffc18f350, res=0x7f474d7220a0) at sql_api.c:257

#2  0x00007f4745059a7b in sql_query (msg=0x7f47484ea540, dbl=0x7f474d573930 "@;WMG\177", query=0x7f474d6780e8 "\250\016rMG\177", res=0x7f474d7220a0 "j8Wi") at sqlops.c:209

#3  0x0000000000419ca2 in do_action (h=0x7ffffc18fa50, a=0x7f474d7207b0, msg=0x7f47484ea540) at action.c:1117

#4  0x0000000000422878 in run_actions (h=0x7ffffc18fa50, a=0x7f474d720420, msg=0x7f47484ea540) at action.c:1599

#5  0x0000000000423017 in run_top_route (a=0x7f474d720420, msg=0x7f47484ea540, c=0x7ffffc18fa50) at action.c:1685

#6  0x00007f4742d1cbec in child_init (rank=-127) at htable.c:223

#7  0x00000000004f7ec2 in init_mod_child (m=0x7f474d56dad8, rank=-127) at sr_module.c:924

#8  0x00000000004f7d65 in init_mod_child (m=0x7f474d56e3e0, rank=-127) at sr_module.c:921

#9  0x00000000004f8048 in init_child (rank=-127) at sr_module.c:948

#10 0x000000000046ce42 in main_loop () at main.c:1571

#11 0x000000000047030b in main (argc=13, argv=0x7ffffc18fec8) at main.c:2533

(gdb) frame 1

#1  0x00007f47450517ef in sql_do_query (con=0x7f474d573930, query=0x7ffffc18f350, res=0x7f474d7220a0) at sql_api.c:257

257             if(con->dbf.raw_query(con->dbh, query, &db_res)!=0)

(gdb) p con

$1 = (sql_con_t *) 0x7f474d573930

(gdb) p con->dbf

$2 = {cap = 0, use_table = 0, init = 0, init2 = 0, close = 0, query = 0, fetch_result = 0, raw_query = 0, free_result = 0, insert = 0, delete = 0, update = 0, replace = 0, last_inserted_id = 0, insert_update = 0, insert_delayed = 0,

  affected_rows = 0, start_transaction = 0, end_transaction = 0, abort_transaction = 0, query_lock = 0}

(gdb)

 

Regards,

Hugh

 

From: sr-users-bounces@lists.sip-router.org [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Sebastian Damm
Sent: 15 May 2014 10:34
To: SIP Router - Kamailio (OpenSER) and SIP Express Router (SER) - Users Mailing List
Subject: [SR-Users] DB select htable:mod-init doesn't work

 

Hi,

I'm trying to fill a hash table on startup in the htable:mod-init event route. But it doesn't work. Kamailio doesn't start at all, but doesn't print out an error in the log.

This is what the route looks like:

event_route[htable:mod-init] {
        xlog("L_NOTICE", "Loading Carrier domains into Hash table.\n");
        sql_query("ser", "select domain_name from carrier_domains", "domains");
        xlog("L_NOTICE", "Loaded from database...\n");
        while($var(i)<$dbr(domains=>cols)) {
                xlog("L_NOTICE", "Entry: $dbr(domains=>[$var(i),0])\n");
                $sht(carrierips=>$var(i)) = $dbr(domains=>[$var(i),0]);
                $var(i) = $var(i) + 1;
        }
}

Of course, the necessary parameters are set.
modparam("htable", "htable", "carrierips=>size=6")
modparam("sqlops","sqlcon","ser=>mysql://user:password@127.0.0.1/ser")

 

In the log I see the following:
May 15 11:25:33 linux /usr/sbin/kamailio[20872]: NOTICE: <script>: Loading Carrier domains into Hash table.

As you can see, there should be a lot more output, but nothing happens anymore after that. In ngrep I see other queries going to the same database from other modules, but my query from the event route is never executed.

Am I missing something?

Best Regards,
Sebastian



This e-mail and any attachment is for authorised use by the intended recipient(s) only. It may contain proprietary material, confidential information and/or be subject to legal privilege. It should not be copied, disclosed to, retained or used by, any other party. If you are not an intended recipient then please promptly delete this e-mail and any attachment and all copies and inform the sender. Thank you for understanding.