Hi,
Thanks for the patch, Kamailio doesn't crash anymore.
However, I'm encountering another issue with usrloc + Mongo, I will write a new post.
Thanks,
Mickael
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: Friday, January 30, 2015 7:22 AM
To: Mickael Marrache
Cc: Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] Core dump while saving user location in mongo
Hello,
I pushed a patch that takes care of initializing the columns array of the result - it is
in the master branch for now.
However, the log messages don't seem to be complete, were you sending all. The
backtrace shows a line which is executed only if an error message is printed, it is not in
the logs you sent.
One thing that I remembered was that usrloc requires parameter db_insert_null to be set in
order to work with mongodb:
-
http://kamailio.org/docs/modules/stable/modules/usrloc.html#usrloc.p.db_ins…
The crash shouldn't happen and hopefully the patch I pushed catches it. Try the patch
without db_insert_null just to see if there is still a crash or not.
Cheers,
Daniel
On Thu, Jan 29, 2015 at 11:51 AM, Mickael Marrache <mickaelmarrache(a)gmail.com>
wrote:
Now, it didn't crash during the REGISTER but during the INVITE:
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:705]: db_mongodb_query(): query to
collection [location]
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:726]: db_mongodb_query(): query
filter: { "username" : "m1" }
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:745]: db_mongodb_query(): columns
filter: { "contact" : 1, "expires" : 1, "q" : 1,
"callid" : 1, "cseq" : 1, "flags" :
1, "cflags" : 1, "user_agent" : 1, "received" : 1,
"path" : 1, "socket" : 1, "methods" : 1,
"last_modified" : 1, "ruid" : 1, "instance" : 1,
"reg_id" : 1 }
kamailio[32599]: DEBUG: <core> [db_res.c:118]: db_new_result(): allocate 56 bytes
for result set at 0x7f83a32daa48
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:203]: db_mongodb_get_columns(): 16
columns returned from the query
kamailio[32599]: DEBUG: <core> [db_res.c:155]: db_allocate_columns(): allocate 128
bytes for result names at 0x7f83a32daf98
kamailio[32599]: DEBUG: <core> [db_res.c:165]: db_allocate_columns(): allocate 64
bytes for result types at 0x7f83a32daed8
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[0] named: contact
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[0] at 0x7f83a32daab8
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:285]: db_mongodb_get_columns(): use
DB1_STRING result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32daab8)[0]=[contact] (2)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[1] named: expires
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[1] at 0x7f83a32dab98
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:275]: db_mongodb_get_columns(): use
DB1_DATETIME result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dab98)[1]=[expires] (9)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[2] named: q
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[2] at 0x7f83a32dabe0
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:270]: db_mongodb_get_columns(): use
DB1_DOUBLE result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dabe0)[2]=[q] (1)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[3] named: callid
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[3] at 0x7f83a32dac70
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:285]: db_mongodb_get_columns(): use
DB1_STRING result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dac70)[3]=[callid] (2)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[4] named: cseq
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[4] at 0x7f83a32dac28
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:260]: db_mongodb_get_columns(): use
DB1_INT result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dac28)[4]=[cseq] (16)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[5] named: flags
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[5] at 0x7f83a32dab50
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:260]: db_mongodb_get_columns(): use
DB1_INT result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dab50)[5]=[flags] (16)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[6] named: cflags
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[6] at 0x7f83a32dae50
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:260]: db_mongodb_get_columns(): use
DB1_INT result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dae50)[6]=[cflags] (16)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[7] named: user_agent
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[7] at 0x7f83a32dacb8
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:285]: db_mongodb_get_columns(): use
DB1_STRING result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dacb8)[7]=[user_agent] (2)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[8] named: received
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[8] at 0x7f83a32dad00
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:285]: db_mongodb_get_columns(): use
DB1_STRING result type
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:314]: db_mongodb_get_columns():
RES_NAMES(0x7f83a32dad00)[8]=[received] (2)
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:231]: db_mongodb_get_columns(): Found
a field[9] named: path
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:250]: db_mongodb_get_columns():
allocate 16 bytes for RES_NAMES[9] at 0x7f83a329f778
kamailio[32599]: DEBUG: db_mongodb [mongodb_dbase.c:285]: db_mongodb_get_columns(): use
DB1_STRING result type
kamailio[32595]: ALERT: <core> [main.c:784]: handle_sigs(): child process 32599
exited by a signal 6
kamailio[32595]: ALERT: <core> [main.c:787]: handle_sigs(): core was generated
kamailio[32595]: INFO: <core> [main.c:799]: handle_sigs(): terminating due to
SIGCHLD
kamailio[32605]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32602]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32603]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32600]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32598]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32601]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32604]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32597]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32606]: INFO: <core> [main.c:850]: sig_usr(): signal 15 received
kamailio[32595]: ERROR: ctl [ctl.c:382]: mod_destroy(): ERROR: ctl: could not delete unix
socket /tmp/kamailio_ctl: Operation not permitted (1)
kamailio[32595]: DEBUG: db_mongodb [mongodb_dbase.c:948]: db_mongodb_delete(): delete
filter document: { "expires" : { "$date" : 1422527804000 },
"expires" : { "$date" : 0 } }
kamailio[32595]: DEBUG: <core> [db_pool.c:102]: pool_remove(): removing connection
from the pool
kamailio[32595]: DEBUG: tm [t_funcs.c:118]: tm_shutdown(): DEBUG: tm_shutdown : start
kamailio[32595]: DEBUG: tm [t_funcs.c:121]: tm_shutdown(): DEBUG: tm_shutdown : emptying
hash table
kamailio[32595]: DEBUG: tm [t_funcs.c:123]: tm_shutdown(): DEBUG: tm_shutdown : removing
semaphores
kamailio[32595]: DEBUG: tm [t_funcs.c:125]: tm_shutdown(): DEBUG: tm_shutdown : destroying
tmcb lists
kamailio[32595]: DEBUG: tm [t_funcs.c:128]: tm_shutdown(): DEBUG: tm_shutdown : done
kamailio[32595]: DEBUG: <core> [mem/shm_mem.c:242]: shm_mem_destroy():
shm_mem_destroy
kamailio[32595]: DEBUG: <core> [mem/shm_mem.c:245]: shm_mem_destroy(): destroying
the shared memory lock
kamailio[32595]: DEBUG: <core> [main.c:803]: handle_sigs(): terminating due to
SIGCHLD
Regarding the core dump:
#0 0x00000031afa32625 in raise () from /lib64/libc.so.6
#1 0x00000031afa33e05 in abort () from /lib64/libc.so.6
#2 0x00000000006196f9 in fm_free (qm=0x7f83a3241010, p=0x20300000203, file=0x7f83a2621608
"<core>: db_res.c", func=0x7f83a2622100 "db_free_columns",
line=86) at mem/f_malloc.c:588
#3 0x00007f83a260d7ab in db_free_columns (_r=0x7f83a32daa48) at db_res.c:86
#4 0x00007f83a260e79e in db_free_result (_r=0x7f83a32daa48) at db_res.c:134
#5 0x00007f83a23ed7cb in db_mongodb_free_result (_h=0x7f83a32de718, _r=0x7f83a32daa48) at
mongodb_dbase.c:646
#6 0x00007f83a23efd65 in db_mongodb_query (_h=0x7f83a32de718, _k=0x7fff25b74840, _op=0x0,
_v=0x7fff25b74800, _c=0x7fff25b74850, _n=1, _nc=16, _o=0x7f83a02f8c80, _r=0x7fff25b747f8)
at mongodb_dbase.c:783
#7 0x00007f83a00d27d2 in db_load_urecord (_c=0x7f83a32de718, _d=0x7f839b9700e8,
_aor=0x7fff25b74c80) at udomain.c:601
#8 0x00007f83a00d7e8e in get_urecord (_d=0x7f839b9700e8, _aor=0x7fff25b74c80,
_r=0x7fff25b74c90) at udomain.c:1106
#9 0x00007f839fe7b271 in lookup_helper (_m=0x7f83a33083e0, _d=0x7f839b9700e8, _uri=0x0,
_mode=0) at lookup.c:173
#10 0x00007f839fe79ffd in lookup (_m=0x7f83a33083e0, _d=0x7f839b9700e8, _uri=0x0) at
lookup.c:88
#11 0x00007f839fe7eb35 in lookup_branches (msg=0x7f83a33083e0, d=0x7f839b9700e8) at
lookup.c:448
#12 0x00007f839fe870dd in w_lookup_branches (_m=0x7f83a33083e0, _d=0x7f839b9700e8
"H", _p2=0x0) at reg_mod.c:499
#13 0x000000000041d3f2 in do_action (h=0x7fff25b755d0, a=0x7f83a32d8cc8,
msg=0x7f83a33083e0) at action.c:1094
#14 0x0000000000429a7a in run_actions (h=0x7fff25b755d0, a=0x7f83a32d8cc8,
msg=0x7f83a33083e0) at action.c:1583
#15 0x000000000042a0df in run_actions_safe (h=0x7fff25b774c0, a=0x7f83a32d8cc8,
msg=0x7f83a33083e0) at action.c:1648
#16 0x0000000000540b7c in rval_get_int (h=0x7fff25b774c0, msg=0x7f83a33083e0,
i=0x7fff25b75d90, rv=0x7f83a32d91f8, cache=0x0) at rvalue.c:924
#17 0x0000000000544db4 in rval_expr_eval_int (h=0x7fff25b774c0, msg=0x7f83a33083e0,
res=0x7fff25b75d90, rve=0x7f83a32d91f0) at rvalue.c:1918
#18 0x000000000041ce4e in do_action (h=0x7fff25b774c0, a=0x7f83a32d9d58,
msg=0x7f83a33083e0) at action.c:1064
#19 0x0000000000429a7a in run_actions (h=0x7fff25b774c0, a=0x7f83a32d9d58,
msg=0x7f83a33083e0) at action.c:1583
#20 0x0000000000419dea in do_action (h=0x7fff25b774c0, a=0x7f83a32c9048,
msg=0x7f83a33083e0) at action.c:712
#21 0x0000000000429a7a in run_actions (h=0x7fff25b774c0, a=0x7f83a32c3cd8,
msg=0x7f83a33083e0) at action.c:1583
#22 0x0000000000419dea in do_action (h=0x7fff25b774c0, a=0x7f83a328d418,
msg=0x7f83a33083e0) at action.c:712
#23 0x0000000000429a7a in run_actions (h=0x7fff25b774c0, a=0x7f83a328d418,
msg=0x7f83a33083e0) at action.c:1583
#24 0x000000000041d2cd in do_action (h=0x7fff25b774c0, a=0x7f83a328d658,
msg=0x7f83a33083e0) at action.c:1079
#25 0x0000000000429a7a in run_actions (h=0x7fff25b774c0, a=0x7f83a327d898,
msg=0x7f83a33083e0) at action.c:1583
#26 0x000000000042a1a7 in run_top_route (a=0x7f83a327d898, msg=0x7f83a33083e0, c=0x0) at
action.c:1669
#27 0x000000000050747e in receive_msg (
buf=0xa6f780 "INVITE sip:XXXXXX@XXXXXXX SIP/2.0\r\nRecord-Route:
<sip:XXXXXXXXX;lr>\r\nVia: SIP/2.0/UDP
XXXXXXX;branch=z9hG4bK2be.f31409f558981039fd70ad46afc97176.0\r\nVia: SIP/2.0/UDP
XXXX"...,
len=1151, rcv_info=0x7fff25b777b0) at receive.c:216
#28 0x0000000000606e76 in udp_rcv_loop () at udp_server.c:521
#29 0x00000000004a5c97 in main_loop () at main.c:1629
#30 0x00000000004aaf2a in main (argc=13, argv=0x7fff25b77bc8) at main.c:2561
I can try to reproduce the issue with the REGISTER if you need.
Mickael
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of
Daniel-Constantin Mierla
Sent: Thursday, January 29, 2015 12:26 PM
To: Kamailio (SER) - Users Mailing List
Subject: Re: [SR-Users] Core dump while saving user location in mongo
Also, give the error messages from syslog file.
Cheers,
Daniel
On 29/01/15 11:23, Daniel-Constantin Mierla wrote:
Hello,
can you give the parameters for usrloc module? Are you using DB_ONLY mode?
Cheers,
Daniel
On 29/01/15 08:55, Mickael Marrache wrote:
Hi,
When my proxy receives a REGISTER request, it crashes while saving the user location in
MongoDB.
This is the backtrace from the core dump:
#0 0x0000003f08e32625 in raise () from /lib64/libc.so.6
#1 0x0000003f08e33e05 in abort () from /lib64/libc.so.6
#2 0x00000000006196f9 in fm_free (qm=0x7f4368bf7010, p=0x210add0, file=0x7f4367fd7608
"<core>: db_res.c", func=0x7f4367fd8100 "db_free_columns",
line=86) at mem/f_malloc.c:588
#3 0x00007f4367fc37ab in db_free_columns (_r=0x7f4368ca0430) at db_res.c:86
#4 0x00007f4367fc479e in db_free_result (_r=0x7f4368ca0430) at db_res.c:134
#5 0x00007f4367da37cb in db_mongodb_free_result (_h=0x7f4368c94718, _r=0x7f4368ca0430) at
mongodb_dbase.c:646
#6 0x00007f4367da5d65 in db_mongodb_query (_h=0x7f4368c94718, _k=0x7fffa03d5550, _op=0x0,
_v=0x7fffa03d5510, _c=0x7fffa03d5560, _n=1, _nc=16, _o=0x7f4365ed2c80, _r=0x7fffa03d5508)
at mongodb_dbase.c:783
#7 0x00007f4365cac7d2 in db_load_urecord (_c=0x7f4368c94718, _d=0x7f436154a0e8,
_aor=0x7fffa03d59d0) at udomain.c:601
#8 0x00007f4365cb1e8e in get_urecord (_d=0x7f436154a0e8, _aor=0x7fffa03d59d0,
_r=0x7fffa03d5760) at udomain.c:1106
#9 0x00007f4365a75dea in add_contacts (_m=0x7f4368cbdc40, _d=0x7f436154a0e8,
_a=0x7fffa03d59d0, _mode=1, _use_regid=1) at save.c:832
#10 0x00007f4365a77d32 in save (_m=0x7f4368cbdc40, _d=0x7f436154a0e8, _cflags=4, _uri=0x0)
at save.c:986
#11 0x00007f4365a606db in w_save2 (_m=0x7f4368cbdc40, _d=0x7f436154a0e8
"H\240TaC\177", _cflags=0x4 <Address 0x4 out of bounds>) at reg_mod.c:447
#12 0x000000000041d489 in do_action (h=0x7fffa03d6180, a=0x7f4368c71e98,
msg=0x7f4368cbdc40) at action.c:1100
#13 0x0000000000429a7a in run_actions (h=0x7fffa03d6180, a=0x7f4368c71e98,
msg=0x7f4368cbdc40) at action.c:1583
#14 0x000000000042a0df in run_actions_safe (h=0x7fffa03d7470, a=0x7f4368c71e98,
msg=0x7f4368cbdc40) at action.c:1648
#15 0x0000000000540b7c in rval_get_int (h=0x7fffa03d7470, msg=0x7f4368cbdc40,
i=0x7fffa03d6658, rv=0x7f4368c72830, cache=0x0) at rvalue.c:924
#16 0x0000000000544db4 in rval_expr_eval_int (h=0x7fffa03d7470, msg=0x7f4368cbdc40,
res=0x7fffa03d6658, rve=0x7f4368c72828) at rvalue.c:1918
#17 0x00000000005451aa in rval_expr_eval_int (h=0x7fffa03d7470, msg=0x7f4368cbdc40,
res=0x7fffa03d6ae0, rve=0x7f4368c72070) at rvalue.c:1926
#18 0x000000000041ce4e in do_action (h=0x7fffa03d7470, a=0x7f4368c73148,
msg=0x7f4368cbdc40) at action.c:1064
#19 0x0000000000429a7a in run_actions (h=0x7fffa03d7470, a=0x7f4368c71cc0,
msg=0x7f4368cbdc40) at action.c:1583
#20 0x0000000000419dea in do_action (h=0x7fffa03d7470, a=0x7f4368c3bdb8,
msg=0x7f4368cbdc40) at action.c:712
#21 0x0000000000429a7a in run_actions (h=0x7fffa03d7470, a=0x7f4368c33898,
msg=0x7f4368cbdc40) at action.c:1583
#22 0x000000000042a1a7 in run_top_route (a=0x7f4368c33898, msg=0x7f4368cbdc40, c=0x0) at
action.c:1669
#23 0x000000000050747e in receive_msg (
buf=0xa6f780 "REGISTER sip:XXXXXXXXXXXX:5060;transport=tcp SIP/2.0\r\nVia:
SIP/2.0/UDP XXXXXXXXX;branch=z9hG4bK242c.26de52a75c8675f6757e0958454a0ad5.0;i=1\r\nv:
SIP/2.0/TCP XXXXXXXXXX:62051;received=XXXXXXXX"...,
len=1004, rcv_info=0x7fffa03d7760) at receive.c:216
#24 0x0000000000606e76 in udp_rcv_loop () at udp_server.c:521
#25 0x00000000004a5c97 in main_loop () at main.c:1629
#26 0x00000000004aaf2a in main (argc=13, argv=0x7fffa03d7b78) at main.c:2561
I tested multiple times, it occurs everytime.
Let me know if you need more information.
Thanks,
Mickael
_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users(a)lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> -
http://www.linkedin.com/in/miconda
--
Daniel-Constantin Mierla
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/miconda
--
Daniel-Constantin Mierla -
http://www.asipto.com
http://twitter.com/#!/miconda -
http://www.linkedin.com/in/micond
<http://www.linkedin.com/in/miconda>