Daniel-Constantin Mierla writes:
Thinking more of it -- is the route[cleaner] executed with rtimer on a dedicated timer process?
I have two timer routes:
modparam("rtimer", "timer", "name=stat_timer;interval=60;mode=1") modparam("rtimer", "exec", "timer=stat_timer;route=stats") modparam("rtimer", "timer", "name=clean_timer;interval=3600") modparam("rtimer", "exec", "timer=clean_timer;route=cleaner")
and I remembered incorrectly: it is the stat_timer route that is executed once per minute and that does two mysql selects and one inserts.
i rebuild latest 4.4 kamailio where I have
# use system malloc #DEFS+=-DXMLRPC_SYSTEM_MALLOC
in xmlrpc/Makefile.
Again I got a crash. Syslog has:
May 3 11:31:22 lohi /usr/bin/sip-proxy[7234]: CRITICAL: <core> [pass_fd.c:275]: receive_fd(): EOF on 39 May 3 11:31:22 lohi /usr/bin/sip-proxy[7152]: ALERT: <core> [main.c:739]: handle_sigs(): child process 7219 exited by a signal 6 May 3 11:31:22 lohi /usr/bin/sip-proxy[7152]: ALERT: <core> [main.c:742]: handle_sigs(): core was generated May 3 11:31:22 lohi /usr/bin/sip-proxy[7152]: INFO: <core> [main.c:754]: handle_sigs(): terminating due to SIGCHLD May 3 11:31:22 lohi /usr/bin/sip-proxy[7233]: INFO: <core> [main.c:809]: sig_usr(): signal 15 received May 3 11:31:22 lohi kernel: [115953.517429] sip-proxy[7232]: segfault at 2987008 ip 00007fb666045b45 sp 00007ffe0eea3c60 error 4 in libc-2.19.so[7fb665fcd000+1a2000] May 3 11:31:22 lohi /usr/bin/sip-proxy[7229]: INFO: <core> [main.c:809]: sig_usr(): signal 15 received ...
This one produced two core files:
47508 -rw------- 1 root root 60002304 May 3 11:31 core.sip-proxy.sig11.7232 47516 -rw------- 1 root root 60006400 May 3 11:31 core.sip-proxy.sig6.7219
gdbs are below.
-- juha
# gdb /usr/bin/sip-proxy /var/cores/core.sip-proxy.sig11.7232 ... (gdb) where #0 malloc_consolidate (av=av@entry=0x7fb666372620 <main_arena>) at malloc.c:4151 #1 0x00007fb666046e98 in _int_malloc (av=av@entry=0x7fb666372620 <main_arena>, bytes=bytes@entry=8192) at malloc.c:3423 #2 0x00007fb6660499dc in __libc_calloc (n=<optimized out>, elem_size=<optimized out>) at malloc.c:3219 #3 0x00007fb66603ed43 in __GI_open_memstream (bufloc=bufloc@entry=0x7ffe0eea3dd0, sizeloc=sizeloc@entry=0x7ffe0eea3dd8) at memstream.c:85 #4 0x00007fb6660b107d in __GI___vsyslog_chk (pri=134, flag=flag@entry=-1, fmt=0x6d9c80 "%s: %s%s(): signal %d received\n", ap=ap@entry=0x7ffe0eea3ea8) at ../misc/syslog.c:167 #5 0x00007fb6660b15bf in __syslog (pri=<optimized out>, fmt=<optimized out>) at ../misc/syslog.c:117 #6 0x0000000000502f39 in sig_usr (signo=1714890272) at main.c:809 #7 <signal handler called> #8 0x00007fb6660b5e53 in epoll_wait () at ../sysdeps/unix/syscall-template.S:81 #9 0x00000000005d6c01 in io_wait_loop_epoll (h=<optimized out>, t=<optimized out>, repeat=<optimized out>) at io_wait.h:1030 #10 tcp_receive_loop (unix_sock=14) at tcp_read.c:1781 #11 0x00000000004d9df7 in tcp_init_children () at tcp_main.c:4788 #12 0x000000000050735f in main_loop () at main.c:1690 #13 0x000000000041cdbc in main (argc=0, argv=0x0) at main.c:2616 (gdb) quit
# gdb /usr/bin/sip-proxy /var/cores/core.sip-proxy.sig6.7219 ... (gdb) where #0 0x00007fb666002067 in __GI_raise (sig=sig@entry=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:56 #1 0x00007fb666003448 in __GI_abort () at abort.c:89 #2 0x00007fb6660401b4 in __libc_message (do_abort=do_abort@entry=1, fmt=fmt@entry=0x7fb666135530 "*** Error in `%s': %s: 0x%s ***\n") at ../sysdeps/posix/libc_fatal.c:175 #3 0x00007fb66604598e in malloc_printerr (action=1, str=0x7fb6661358d0 "malloc(): memory corruption (fast)", ptr=<optimized out>) at malloc.c:4996 #4 0x00007fb666047d2b in _int_malloc (av=0x7fb666372620 <main_arena>, bytes=4) at malloc.c:3359 #5 0x00007fb666049020 in __GI___libc_malloc (bytes=4) at malloc.c:2891 #6 0x00007fb6660926c5 in re_node_set_init_copy (dest=0x296a2c8, src=0x7ffe0eea2ba0) at regex_internal.c:1031 #7 0x00007fb6660929c3 in create_cd_newstate (hash=2, context=0, nodes=0x7ffe0eea2ba0, dfa=0x292acb0) at regex_internal.c:1673 #8 re_acquire_state_context (err=err@entry=0x7ffe0eea2b80, dfa=dfa@entry=0x292acb0, nodes=nodes@entry=0x7ffe0eea2ba0, context=context@entry=0) at regex_internal.c:1545 #9 0x00007fb665fee28b in build_trtable (dfa=<optimized out>, state=state@entry=0x292be30) at regexec.c:3439 #10 0x00007fb666098500 in transit_state (state=0x292be30, mctx=0x7ffe0eea2d30, err=0x7ffe0eea2cf8) at regexec.c:2322 #11 check_matching (p_match_first=0x7ffe0eea2cf4, fl_longest_match=1, mctx=0x7ffe0eea2d30) at regexec.c:1173 #12 re_search_internal (preg=preg@entry=0x7fb665e563a8, string=string@entry=0x2953558 "412", length=3, start=<optimized out>, start@entry=0, range=3, stop=<optimized out>, nmatch=<optimized out>, pmatch=0x7ffe0eea2ee0, eflags=0) at regexec.c:844 #13 0x00007fb66609ce65 in __regexec (preg=0x7fb665e563a8, string=0x2953558 "412", nmatch=<optimized out>, pmatch=0x7ffe0eea2ee0, eflags=<optimized out>) at regexec.c:252 #14 0x00007fb6632f0234 in t_check_status (msg=0x7fb6657333e8, p1=0x7fb665e56328 "pY\247e\266\177", foo=0x6 <error: Cannot access memory at address 0x6>) at tm.c:947 ---Type <return> to continue, or q <return> to quit--- #15 0x000000000053c340 in do_action (h=0x7ffe0eea34a0, a=0x7fb665a75010, msg=0x7fb6657333e8) at action.c:1060 #16 0x000000000053ae05 in run_actions (h=0x1c33, h@entry=0x7ffe0eea34a0, a=0x1c33, msg=0x6) at action.c:1549 #17 0x00000000005477d7 in run_actions_safe (h=0x7ffe0eea3ec0, a=<optimized out>, msg=<optimized out>) at action.c:1614 #18 0x0000000000424720 in rval_get_int (h=0x7ffe0eea3ec0, msg=0x1c33, i=0x7ffe0eea37d0, rv=0x7fb666002067 <__GI_raise+55>, cache=0x3134323336393230) at rvalue.c:912 #19 0x000000000042a4ac in rval_expr_eval_int (h=0x7ffe0eea3ec0, msg=0x7fb6657333e8, res=0x7ffe0eea37d0, rve=0x7fb665a75208) at rvalue.c:1910 #20 0x000000000053c817 in do_action (h=0x7ffe0eea3ec0, a=0x7fb665a789c8, msg=0x7fb6657333e8) at action.c:1030 #21 0x000000000053ae05 in run_actions (h=0x1c33, h@entry=0x7ffe0eea3ec0, a=0x1c33, a@entry=0x7fb665a745f0, msg=0x6, msg@entry=0x7fb6657333e8) at action.c:1549 #22 0x0000000000547875 in run_top_route (a=0x7fb665a745f0, msg=0x7fb6657333e8, c=<optimized out>) at action.c:1635 #23 0x00007fb6632b7957 in reply_received (p_msg=0x7fb6657333e8) at t_reply.c:2323 #24 0x00000000004fbfe6 in do_forward_reply (msg=0x7fb6657333e8, mode=0) at forward.c:747 #25 0x0000000000549673 in receive_msg (buf=0x0, len=1702048744, rcv_info=0x7fb665770f50) at receive.c:298 #26 0x00000000005cb9fa in tcp_read_req (con=0x7fb65def8fd8, bytes_read=0x7ffe0eea4404, read_flags=0x7ffe0eea4408) at tcp_read.c:1418 #27 0x00000000005d0313 in handle_io (fm=0x7fb65def8fd8, events=7219, idx=-1) at tcp_read.c:1611 #28 0x00000000005d6c4e in io_wait_loop_epoll (h=<optimized out>, t=<optimized out>, repeat=<optimized out>) at io_wait.h:1061 #29 tcp_receive_loop (unix_sock=7219) at tcp_read.c:1781 #30 0x00000000004d9df7 in tcp_init_children () at tcp_main.c:4788 #31 0x000000000050735f in main_loop () at main.c:1690 #32 0x000000000041cdbc in main (argc=0, argv=0x0) at main.c:2616 (gdb)