Hello,

there was a wrong unlocking of the profile while printing its content via MI, that could caused a race and eventually this kind of crash (in the case a dlg was added/removed in/from profile while the mi command was run).

I committed a patch, you have to use latest branch 3.2. Let us know if all goes fine now.

Cheers,
Daniel

On 6/25/12 4:45 PM, Ricardo Martinez wrote:

Hello List.

The last weekend our kamailio process crashed with this error :

 

 Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10661]: : <core> [pass_fd.c:293]: ERROR: receive_fd: EOF on 29

Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: ALERT: <core> [main.c:751]: child process 10601 exited by a signal 11

Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: ALERT: <core> [main.c:754]: core was generated

Jun 24 06:55:08 pxh /usr/local/sbin/kamailio[10542]: INFO: <core> [main.c:766]: INFO: terminating due to SIGCHLD

 

Can someone tell me what seems to be the problem here?

We’re using  :

 

version: kamailio 3.2.2 (x86_64/linux) 98ba92-dirty

flags: STATS: Off, USE_IPV6, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, DBG_QM_MALLOC, USE_FUTEX, FAST_LOCK-ADAPTIVE_WAIT, USE_DNS_CACHE, USE_DNS_FAILOVER, USE_NAPTR, USE_DST_BLACKLIST, HAVE_RESOLV_RES

ADAPTIVE_WAIT_LOOPS=1024, MAX_RECV_BUFFER_SIZE 262144, MAX_LISTEN 16, MAX_URI_SIZE 1024, BUF_SIZE 65535, DEFAULT PKG_SIZE 4MB

poll method support: poll, epoll_lt, epoll_et, sigio_rt, select.

id: 98ba92 -dirty

compiled on 12:45:36 Feb  2 2012 with gcc 4.4.6

 

And this is the bt full from gdb

 

Core was generated by `/usr/local/sbin/kamailio -m 1024'.

Program terminated with signal 11, Segmentation fault.

#0  mi_profile_list (cmd_tree=<value optimized out>, param=<value optimized out>) at dlg_profile.c:789

789                                             if ( mi_print_dlg( rpl, ph->dlg, 0)!=0 )

Missing separate debuginfos, use: debuginfo-install filesystem-2.4.30-2.1.el6.x86_64 glibc-2.12-1.25.el6_1.3.x86_64 keyutils-libs-1.4-1.el6.x86_64 krb5-libs-1.9-9.el6_1.2.x86_64 libcom_err-1.41.12-7.el6.x86_64 libselinux-2.0.94-5.el6.x86_64 mysql-libs-5.1.52-1.el6_0.1.x86_64 nss-softokn-freebl-3.12.7-1.1.el6.x86_64 openssl-1.0.0-20.el6_2.1.x86_64 pcre-7.8-3.1.el6.x86_64 zlib-1.2.3-26.el6.x86_64

(gdb) bt full

#0  mi_profile_list (cmd_tree=<value optimized out>, param=<value optimized out>) at dlg_profile.c:789

        node = <value optimized out>

        rpl_tree = 0x20a6790

        rpl = 0x20a67b0

        profile = 0x7fe99a2dda00

        ph = 0x0

        profile_name = <value optimized out>

        value = <value optimized out>

        i = <value optimized out>

#1  0x00007fe9dce287b1 in run_mi_cmd (fifo_stream=<value optimized out>) at ../../lib/kmi/mi.h:77

No locals.

#2  mi_fifo_server (fifo_stream=<value optimized out>) at fifo_fnc.c:509

        mi_cmd = 0x208f8f0

        mi_rpl = <value optimized out>

        hdl = 0x0

        line_len = 41

        file_sep = 0x2039017 ""

        command = 0x7fe9dfdbdef9 "profile_list_dlgs"

        file = 0x7fe9dfd98d78 "/tmp/openser_receiver_27809"

        f = 0x2039018

        reply_stream = 0x20b0980

#3  0x00007fe9dce2a640 in fifo_process (rank=<value optimized out>) at mi_fifo.c:247

        fifo_stream = 0x209a0b0

#4  0x00007fe9dce2a9de in mi_child_init (rank=0) at mi_fifo.c:211

        pid = <value optimized out>

#5  0x00000000004dba41 in init_mod_child (m=0x7fe9dfc6ba10, rank=0) at sr_module.c:886

No locals.

#6  0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6bd08, rank=0) at sr_module.c:883

No locals.

#7  0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6c248, rank=0) at sr_module.c:883

No locals.

#8  0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6c748, rank=0) at sr_module.c:883

No locals.

#9  0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6d288, rank=0) at sr_module.c:883

No locals.

#10 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6d928, rank=0) at sr_module.c:883

No locals.

#11 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6dee0, rank=0) at sr_module.c:883

No locals.

#12 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e1f0, rank=0) at sr_module.c:883

No locals.

#13 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e5d0, rank=0) at sr_module.c:883

No locals.

#14 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6e830, rank=0) at sr_module.c:883

No locals.

#15 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6ebd0, rank=0) at sr_module.c:883

No locals.

#16 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6f220, rank=0) at sr_module.c:883

No locals.

#17 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6f648, rank=0) at sr_module.c:883

No locals.

#18 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6fa60, rank=0) at sr_module.c:883

No locals.

#19 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc6fe40, rank=0) at sr_module.c:883

No locals.

#20 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc702c0, rank=0) at sr_module.c:883

No locals.

#21 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc70ae8, rank=0) at sr_module.c:883

No locals.

---Type <return> to continue, or q <return> to quit---

#22 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc70e18, rank=0) at sr_module.c:883

No locals.

#23 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc71100, rank=0) at sr_module.c:883

No locals.

#24 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc716c0, rank=0) at sr_module.c:883

No locals.

#25 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc71df0, rank=0) at sr_module.c:883

No locals.

#26 0x00000000004db9c4 in init_mod_child (m=0x7fe9dfc723c0, rank=0) at sr_module.c:883

No locals.

#27 0x000000000046077d in main_loop () at main.c:1661

        i = <value optimized out>

        pid = <value optimized out>

        si = 0x0

        si_desc = "udp receiver child=15 sock=64.76.154.35:5060", '\000' <repeats 20 times>, "\003", '\000' <repeats 15 times>, "\030\325\a\232\351\177\000\000\001\000\000\000\002", '\000' <repeats 11 times>, "\001\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000)\000\000\000\000\000\000"

#28 0x0000000000461f13 in main (argc=<value optimized out>, argv=0x7fff2f2b2848) at main.c:2475

        cfg_stream = <value optimized out>

        c = <value optimized out>

        r = <value optimized out>

        tmp = 0x7fff2f2b3f76 ""

        tmp_len = 0

        options = 0x5a3178 ":f:cm:M:dVhEb:l:L:n:vrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:"

        ret = -1

        seed = 1850310455

        rfd = <value optimized out>

        debug_save = <value optimized out>

        debug_flag = <value optimized out>

        dont_fork_cnt = <value optimized out>

        n_lst = <value optimized out>

        p = <value optimized out>

(gdb)

 

Regards,

Ricardo.-

 

 

 



_______________________________________________
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

-- 
Daniel-Constantin Mierla - http://www.asipto.com
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio Advanced Training, Seattle, USA, Sep 23-26, 2012 - http://asipto.com/u/katu
Kamailio Practical Workshop, Netherlands, Sep 10-12, 2012 - http://asipto.com/u/kpw