Hello list,
I`ve found a negative phenomenon during startup of kamailio 3.1.x
(orgininally found in version 3.1.5) that results in a core dump,
triggered by the snmpstats module.
During startup of the SIP proxy server machine the linux service
"heartbeat" is responsible for starting required ressources like mysql,
kamailio and snmpd. These services are monitored by the tool "monit".
Monit is supervising the state of the named services and if kamailio is
not up and running, monit is trying to restart the service. During
startup the mysql database takes some time until it is ready to use and
therefore kamailio can`t connect to the database. Monit is detecting
this and restarting kamailio. This is done so often until kamailio is up
and running.
Finally all services are up and running and the machine is working fine.
However, I do not like the core dump that was created during this
"restart phase". As soon as the module "snmpstats" is not used, no core
dump is created any more.
Information about the core dump looks as follows:
(1) output of kamailio log files:
<prefix> kamailio: INFO: <core> [tcp_main.c:4726]: init_tcp: using
epoll_lt as the io watch method (auto detected) <prefix>
/usr/sbin/kamailio[3027]: ERROR: db_mysql [km_my_con.c:109]: driver
error: Can't connect to local MySQL server through socket
'/var/run/mysqld/mysqld.sock' (2) <prefix> /usr/sbin/kamailio[3027]:
ERROR: <core> [db.c:289]: could not add connection to the pool <prefix>
/usr/sbin/kamailio[3027]: ERROR: lcr [lcr_mod.c:359]: unable to connect
to the database <prefix> /usr/sbin/kamailio[3027]: ERROR: lcr
[lcr_mod.c:571]: unable to open database connection <prefix>
/usr/sbin/kamailio[3027]: ERROR: <core> [sr_module.c:875]: init_mod():
Error while initializing module lcr (/usr/lib/kamailio/modules/lcr.so)
<prefix> /usr/sbin/kamailio[3027]: INFO: snmpstats [snmpstats.c:387]:
The SNMPStats module got the kill signal <prefix> kamailio: ERROR:
<core> [daemonize.c:307]: Main process exited before writing to pipe
<prefix> kamailio: INFO: <core> [tcp_main.c:4726]: init_tcp: using
epoll_lt as the io watch method (auto detected) <prefix> kamailio:
WARNING: <core> [daemonize.c:352]: pid file contains old pid, replacing
pid <prefix> /usr/sbin/kamailio[3322]: INFO: usrloc [hslot.c:53]: locks
array size 512 <prefix> /usr/sbin/kamailio[3322]: INFO: auth
[auth_mod.c:312]: auth: qop set, but nonce-count (nc_enabled) support
disabled <prefix> /usr/sbin/kamailio[3322]: INFO: pua [pua.c:360]: the
query returned no result <prefix> /usr/sbin/kamailio[3322]: INFO: pike
[ip_tree.c:88]: probing 256 set size <prefix> /usr/sbin/kamailio[3322]:
INFO: <core> [udp_server.c:178]: INFO: udp_init: SO_RCVBUF is initially
111616 <prefix> /usr/sbin/kamailio[3322]: INFO: <core>
[udp_server.c:229]: INFO: udp_init: SO_RCVBUF is finally 262142 <prefix>
/usr/sbin/kamailio[3329]: INFO: mi_datagram [mi_datagram.c:326]: a new
child 0/3329
(2) output of GDB / core file:
Core was generated by `/usr/sbin/kamailio -P
/var/run/kamailio/kamailio.pid -m 1024 -u kamailio -g kama'. Program
terminated with signal 11, Segmentation fault.
[New process 3027]
#0 0xb775539c in freeInterprocessBuffer () at interprocess_buffer.c:354
354 interprocess_buffer.c: No such file or directory.
in interprocess_buffer.c
(gdb)
I know that it is not a fine method in killing kamailio during
initialisation. But I have not found a better way yet. The other modules
like LCR have no problem with the kill signal during initialisation. My
main question is now: how could these core dumps being avoided? Did
anybody have the same experience as me?
Thanks in advance,
Klaus
_______________________________________________
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