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


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

Reply via email to