[SR-Users] Accounting to mysql resulted in segfault

Daniel-Constantin Mierla miconda at gmail.com
Wed Dec 4 21:02:20 CET 2013


Would be good to get the core and backtrace, otherwise is hard to track 
what went wrong. db_mysql discards the query if it is not successful 
after three retries. The segfault seem to refer to usrloc, not acc. The 
issue could be combined with libmysqlclient behaviour, iirc kamailio 
will try to open a new connection if old one is dead.

You could eventually switch to use insert delayed with acc module or 
even globally via db_mysql - there are module parameters for it.

Cheers,
Daniel

On 12/4/13 3:30 PM, Daniel Tryba wrote:
> This morning I had the unpleasant realisation that kamailio (4.0.3) crashed
> twice while I was running an alter statement on the acc table of a live
> instance.
>
> db_mysql [km_dbase.c:122]: db_mysql_submit_query(): driver error on q
> uery: Too many connections
> <core> [db_query.c:132]: db_do_query_internal(): error while submitti
> ng query
> auth_db [authorize.c:175]: get_ha1(): failed to query database
> or
> alias_db [alookup.c:111]: alias_db_lookup(): failed to query database
> db_mysql [km_dbase.c:122]: db_mysql_submit_query(): driver error on query: Too
> many connections
>
> just before (no core):
> segfault at 18 ip 00007f0d6b287a83 sp 00007fffc4467550 error 4 in
> usrloc.so[7f0d6b267000+27000]
>
> So instead of just discarding the acc inserts, these pile up resulting in
> consuming max connections to the database and eventually segfaulting.
>
> I know (now) that I shouldn't do this on a production server, but I'd rather
> have the database accounting discarded than a machine crashing (can be
> reconstructed from syslog).
>
> My question: is this "normal" behavior? Can this be avoided somehow (other
> than ensuring 100% availability of the sql server).
>

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




More information about the sr-users mailing list