Hi,
This is a copy/paste from the user's mailing list, thought I would log a bug to keep track of it.
Original message follows:
-------------------------------------------------------------------------------------------------------------------- Hi All,
Another thing I noticed while playing with kamailio and dmq/dmq_usrloc is that 7 out of 10 times the kamailio process crashes when I initially start it up.
Any tips/requests for further debugging would be greatly appreciated.
Kamailio version:
version: kamailio 4.3.0 (x86_64/linux) c6aa95 flags: STATS: Off, USE_TCP, USE_TLS, TLS_HOOKS, USE_RAW_SOCKS, DISABLE_NAGLE, USE_MCAST, DNS_IP_HACK, SHM_MEM, SHM_MMAP, PKG_MALLOC, F_MALLOC, DBG_F_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 8MB poll method support: poll, epoll_lt, epoll_et, sigio_rt, select. id: c6aa95 compiled on 16:14:27 Jun 23 2015 with gcc 4.4.7
I start kamailio as follows, from commandline:
/usr/sbin/kamailio -P /var/run/kamailio_registrar01/kamailio.pid -f /shared/kamailio/etc/kamailio_registrar.cfg -l "udp:(10.6.0.173, 10.7.0.173)" -m 1024 -M64 -A RESOURCE_REGISTRAR01 -l tcp:10.6.0.173:80 -u root -g root -ddd
DMQ related settings are as follows:
# grep -i dmq module_definitions.cfg loadmodule "dmq.so" loadmodule "dmq_usrloc.so" # ----- dmq params ----- modparam("dmq", "server_address", DMQ_ADDRESS) modparam("dmq", "notification_address", "sip:sip-registrars.internal_domain.com:5060") modparam("dmq", "multi_notify", 1) modparam("dmq", "num_workers", 4) # ----- dmq_usrloc params ----- modparam("dmq_usrloc", "enable", 1)
DMQ_ADDRESS is defined as "sip:10.6.0.173:5060" in this servers case. sip-registrars.internal_domain.com resolves to the following address list 10.6.0.173, 10.6.0.174, 10.6.0.175
Here is the debug log of the crash:
Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [worker.c:82]: worker_loop(): dmq_worker [0 27445] getting lock Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [worker.c:84]: worker_loop(): dmq_worker [0 27445] lock acquired Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [parser/parse_addr_spec.c:172]: parse_to_param(): DEBUG: add_param: tag=66fabe782d71b7a9842d4a6a5eb93c4d-1de2 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [parser/parse_addr_spec.c:894]: parse_addr_spec(): end of header reached, state=29 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [notification_peer.c:454]: dmq_notification_callback(): dmq triggered from dmq_notification_callback Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [dmqnode.c:153]: build_dmq_node(): build_dmq_node sip:10.6.0.173:5060;status=active with private memory Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [dmqnode.c:153]: build_dmq_node(): build_dmq_node sip:10.6.0.175:5060;status=active with private memory Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [dmqnode.c:153]: build_dmq_node(): build_dmq_node sip:10.6.0.174:5060;status=active with private memory Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [notification_peer.c:468]: dmq_notification_callback(): received 0 new or changed nodes Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [notification_peer.c:528]: build_notification_body(): body_len = 1024 - clen = 0 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [notification_peer.c:528]: build_notification_body(): body_len = 1024 - clen = 35 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [notification_peer.c:528]: build_notification_body(): body_len = 1024 - clen = 70 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq_usrloc [usrloc_sync.c:388]: usrloc_dmq_request_sync(): requesting sync from dmq peers Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq_usrloc [usrloc_sync.c:404]: usrloc_dmq_request_sync(): sending serialized data {"action":3} Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq_usrloc [usrloc_sync.c:226]: usrloc_dmq_send(): sending dmq broadcast... Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [socket_info.c:563]: grep_sock_info(): checking if host==us: 10==10 && [10.6.0.173] == [10.6.0.173] Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [socket_info.c:566]: grep_sock_info(): checking if port 5060 (advertise 0) matches port 5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: tm [uac.c:249]: t_uac_prepare(): DEBUG:tm:t_uac: next_hop=sip:usrloc@10.6.0.174:5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: tm [uac.c:150]: dlg2hash(): DEBUG: dlg2hash: 24685 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [socket_info.c:563]: grep_sock_info(): checking if host==us: 10==10 && [10.6.0.173] == [10.6.0.173] Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [socket_info.c:566]: grep_sock_info(): checking if port 5060 (advertise 0) matches port 5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: tm [uac.c:249]: t_uac_prepare(): DEBUG:tm:t_uac: next_hop=sip:usrloc@10.6.0.175:5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: tm [uac.c:150]: dlg2hash(): DEBUG: dlg2hash: 24686 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [dmq_funcs.c:163]: bcast_dmq_message(): skipping node sip:10.6.0.173:5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: sl [sl.c:280]: send_reply(): reply in stateless mode (sl) Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [msg_translator.c:158]: check_via_address(): (10.6.0.174, 10.6.0.174, 0) Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq [worker.c:134]: worker_loop(): sent reply Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [parser/parse_addr_spec.c:172]: parse_to_param(): DEBUG: add_param: tag=66fabe782d71b7a9842d4a6a5eb93c4d-1ac2 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: <core> [parser/parse_addr_spec.c:894]: parse_addr_spec(): end of header reached, state=29 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq_usrloc [usrloc_sync.c:250]: usrloc_dmq_handle_msg(): dmq message received from sip:usrloc@10.6.0.174:5060 Jul 1 21:04:48 bfievkrl01 /usr/sbin/kamailio[27445]: DEBUG: dmq_usrloc [usrloc_sync.c:360]: usrloc_dmq_handle_msg(): Received DMQ_SYNC. Sending all contacts...
And here is the backtrace from the core file:
# gdb /usr/sbin/kamailio /core.27445 GNU gdb (GDB) Red Hat Enterprise Linux (7.2-75.el6) Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu". For bug reporting instructions, please see: http://www.gnu.org/software/gdb/bugs/... Reading symbols from /usr/sbin/kamailio...(no debugging symbols found)...done. [New Thread 27445] Reading symbols from /lib64/libdl.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libresolv.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libresolv.so.2 Reading symbols from /lib64/libc.so.6...(no debugging symbols found)...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/kamailio/modules/db_unixodbc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/db_unixodbc.so Reading symbols from /usr/lib64/libodbc.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libodbc.so.2 Reading symbols from /usr/lib64/kamailio/libsrdb1.so.1...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/libsrdb1.so.1 Reading symbols from /usr/lib64/kamailio/libkcore.so.1...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/libkcore.so.1 Reading symbols from /usr/lib64/libltdl.so.7...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libltdl.so.7 Reading symbols from /lib64/libpthread.so.0...(no debugging symbols found)...done. [Thread debugging using libthread_db enabled] Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/kamailio/modules/mi_fifo.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/mi_fifo.so Reading symbols from /usr/lib64/kamailio/libkmi.so.1...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/libkmi.so.1 Reading symbols from /usr/lib64/kamailio/modules/tm.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/tm.so Reading symbols from /usr/lib64/kamailio/modules/sl.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/sl.so Reading symbols from /usr/lib64/kamailio/modules/pv.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/pv.so Reading symbols from /usr/lib64/kamailio/libsrutils.so.1...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/libsrutils.so.1 Reading symbols from /lib64/libm.so.6...(no debugging symbols found)...done. Loaded symbols for /lib64/libm.so.6 Reading symbols from /usr/lib64/kamailio/modules/kex.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/kex.so Reading symbols from /usr/lib64/kamailio/modules/usrloc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/usrloc.so Reading symbols from /usr/lib64/kamailio/modules/registrar.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/registrar.so Reading symbols from /usr/lib64/kamailio/modules/xlog.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/xlog.so Reading symbols from /usr/lib64/kamailio/modules/auth.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/auth.so Reading symbols from /usr/lib64/kamailio/modules/auth_db.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/auth_db.so Reading symbols from /usr/lib64/kamailio/modules/rr.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/rr.so Reading symbols from /usr/lib64/kamailio/modules/path.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/path.so Reading symbols from /usr/lib64/kamailio/modules/nathelper.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/nathelper.so Reading symbols from /usr/lib64/kamailio/modules/siputils.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/siputils.so Reading symbols from /usr/lib64/kamailio/modules/textops.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/textops.so Reading symbols from /usr/lib64/kamailio/modules/xmlrpc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/xmlrpc.so Reading symbols from /usr/lib64/libxml2.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libxml2.so.2 Reading symbols from /lib64/libz.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libz.so.1 Reading symbols from /usr/lib64/kamailio/modules/ctl.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/ctl.so Reading symbols from /usr/lib64/kamailio/modules/cfg_rpc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/cfg_rpc.so Reading symbols from /usr/lib64/kamailio/modules/dmq.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/dmq.so Reading symbols from /usr/lib64/kamailio/modules/dmq_usrloc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/kamailio/modules/dmq_usrloc.so Reading symbols from /lib64/libnss_files.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libnss_files.so.2 Reading symbols from /usr/lib64/gconv/ISO8859-1.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/gconv/ISO8859-1.so Reading symbols from /usr/lib64/psqlodbc.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/psqlodbc.so Reading symbols from /usr/lib64/libssl.so.10...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libssl.so.10 Reading symbols from /usr/lib64/libpq.so.5...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libpq.so.5 Reading symbols from /usr/lib64/libodbcinst.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libodbcinst.so.2 Reading symbols from /lib64/libgssapi_krb5.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libgssapi_krb5.so.2 Reading symbols from /lib64/libkrb5.so.3...(no debugging symbols found)...done. Loaded symbols for /lib64/libkrb5.so.3 Reading symbols from /lib64/libcom_err.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libcom_err.so.2 Reading symbols from /lib64/libk5crypto.so.3...(no debugging symbols found)...done. Loaded symbols for /lib64/libk5crypto.so.3 Reading symbols from /usr/lib64/libcrypto.so.10...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libcrypto.so.10 Reading symbols from /lib64/libcrypt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /lib64/libldap_r-2.4.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libldap_r-2.4.so.2 Reading symbols from /lib64/libkrb5support.so.0...(no debugging symbols found)...done. Loaded symbols for /lib64/libkrb5support.so.0 Reading symbols from /lib64/libkeyutils.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libkeyutils.so.1 Reading symbols from /lib64/libfreebl3.so...(no debugging symbols found)...done. Loaded symbols for /lib64/libfreebl3.so Reading symbols from /lib64/liblber-2.4.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/liblber-2.4.so.2 Reading symbols from /usr/lib64/libsasl2.so.2...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libsasl2.so.2 Reading symbols from /usr/lib64/libssl3.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libssl3.so Reading symbols from /usr/lib64/libsmime3.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libsmime3.so Reading symbols from /usr/lib64/libnss3.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libnss3.so Reading symbols from /usr/lib64/libnssutil3.so...(no debugging symbols found)...done. Loaded symbols for /usr/lib64/libnssutil3.so Reading symbols from /lib64/libplds4.so...(no debugging symbols found)...done. Loaded symbols for /lib64/libplds4.so Reading symbols from /lib64/libplc4.so...(no debugging symbols found)...done. Loaded symbols for /lib64/libplc4.so Reading symbols from /lib64/libnspr4.so...(no debugging symbols found)...done. Loaded symbols for /lib64/libnspr4.so Reading symbols from /lib64/libselinux.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/libselinux.so.1 Reading symbols from /lib64/librt.so.1...(no debugging symbols found)...done. Loaded symbols for /lib64/librt.so.1 Reading symbols from /lib64/libnss_dns.so.2...(no debugging symbols found)...done. Loaded symbols for /lib64/libnss_dns.so.2 Core was generated by `/usr/sbin/kamailio -P /var/run/kamailio_registrar01/kamailio.pid -f /shared/kam'. Program terminated with signal 11, Segmentation fault. #0 0x00007fdad84d76a5 in memcpy () from /lib64/libc.so.6 Missing separate debuginfos, use: debuginfo-install kamailio-4.3.0-0.el6.bf.x86_64 (gdb) bt #0 0x00007fdad84d76a5 in memcpy () from /lib64/libc.so.6 #1 0x00007fdacfeff03d in usrloc_get_all_ucontact () from /usr/lib64/kamailio/modules/dmq_usrloc.so #2 0x00007fdacff02dfd in usrloc_dmq_handle_msg () from /usr/lib64/kamailio/modules/dmq_usrloc.so #3 0x00007fdad012d4a7 in worker_loop () from /usr/lib64/kamailio/modules/dmq.so #4 0x00007fdad011232c in ?? () from /usr/lib64/kamailio/modules/dmq.so #5 0x0000000000592675 in ?? () #6 0x00000000005923b0 in ?? () #7 0x000000000059297f in init_child () #8 0x00000000004a7680 in main_loop () #9 0x00000000004acd36 in main () (gdb) ^C(gdb) Quit
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236
This is caused by my recent changes to usrloc API 039231a3b61c00fe36e868417144daa9f04936ba
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119168999
Can you please try this fix?
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119169954
Merged
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119187657
Closed #236.
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#event-349629163
Thanks for the quick patch, I'll recompile and report back shortly
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119192388
With the following 2 patches applied: I get a compilation error in the nathelper module:
https://github.com/kamailio/kamailio/commit/039231a3b61c00fe36e868417144daa9... https://github.com/kamailio/kamailio/commit/733fd5daf74963b152a2964f9eea1a6f...
I get a compilation error in the nathelper module:
``` CC (gcc) [M nathelper.so] nathelper.o nathelper.c: In function 'nh_timer': nathelper.c:2084: error: too few arguments to function 'ul.get_all_ucontacts' nathelper.c:2100: error: too few arguments to function 'ul.get_all_ucontacts' make[1]: *** [nathelper.o] Error 1 make: *** [modules] Error 1 ```
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119200227
You've missed: 894796f6f1fa2d2778ace5c56f58d204ea06efc2
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119201339
ahh, thanks, I'll give it another go and report back in a few minutes.
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119201605
I dont appear to be having the crash on startup anymore, looks like those 3 patches of sorted that issue out, thank you for your time spent on this.
On a side note, one thing I have noticed is that when registrations are replicated accross using DMQ_URSLOC, I am getting garbled AOR's when issuing a "kamctl ul show" on the replicated nodes, for example:
``` # kamctl ul show Domain:: location table=1024 records=1 max_slot=1 AOR:: Àn" ``` Is this related, or shall I open a seperate issue for this?
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119221065
I would say that you should open another issue
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119221861
OK thanks, I'll create on shortly.
--- Reply to this email directly or view it on GitHub: https://github.com/kamailio/kamailio/issues/236#issuecomment-119222788