[SR-Users] DB select htable:mod-init doesn't work

Daniel-Constantin Mierla miconda at gmail.com
Thu May 15 16:10:52 CEST 2014


Hello,

On 15/05/14 13:55, Sebastian Damm wrote:
> Hi Daniel,
>
> I'm using 4.1.3
>
> I used this, because I found it in an example written by you.
> http://by-miconda.blogspot.de/2009/12/best-of-new-in-kamailio-300-9.html
>
> Is there any other way I can initialize a hash with values from a 
> database table not explicitly designed for use with htable module?

perhaps with lua or other embedded
> (The other way I could solve my problem would be if I could use the 
> is_domain_local() from the domain module also in the onreply_route.)

I see no reason not to be allowed there, as the parameter is given from 
script. Maybe you can use is_myself() with domain module having 
parameter register_myself set.

>
> Thanks, Hugh, for pointing out the crash. I found a couple of core 
> files from my test on my file system, too. I didn't see the "core was 
> generated" message in the log, so I didn't think there was one there.

can you give the backtrace for 4.1.3, what Hugh sent didn't match the 
source code, maybe he has older version.

Cheers,
Daniel

>
> Best Regards,
> Sebastian
>
>
> On Thu, May 15, 2014 at 1:37 PM, Daniel-Constantin Mierla 
> <miconda at gmail.com <mailto:miconda at gmail.com>> wrote:
>
>     Indeed, the db connection is not initialized at the time of
>     executing event_route[htable:mod-init]. This is executed after all
>     modules are initialized, but the sqlops connections are
>     initialized in child init.
>
>     However, it should not cause this crash. What version are you
>     using? Because latest master and 4.1 have a simple condition at
>     sql_api.c:257.
>
>     Cheers,
>     Daniel
>
>
>     On 15/05/14 12:44, Waite, Hugh wrote:
>>
>>     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 at lists.sip-router.org
>>     <mailto:sr-users-bounces at lists.sip-router.org>
>>     [mailto:sr-users-bounces at 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
>>     <http://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.
>>
>>
>>
>>     _______________________________________________
>>     SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
>>     sr-users at lists.sip-router.org  <mailto:sr-users at lists.sip-router.org>
>>     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>     -- 
>     Daniel-Constantin Mierla -http://www.asipto.com
>     http://twitter.com/#!/miconda  <http://twitter.com/#%21/miconda>  -http://www.linkedin.com/in/miconda
>
>
>     _______________________________________________
>     SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing
>     list
>     sr-users at lists.sip-router.org <mailto:sr-users at lists.sip-router.org>
>     http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
>
>

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20140515/65b917de/attachment.html>


More information about the sr-users mailing list