[SR-Users] coredump on using jsonprc_request

davy van de moere davy.van.de.moere at gmail.com
Wed Feb 26 12:47:10 CET 2014


 
Gents,

I’ve stumbled upon a coredump when using jsonrpc_request.

I might be expecting the wrong things from jsonrpc_request. I was hoping to use it in combination with CNXCC, and have jsonrpc_request get a maximum duration for every call, as a fraud avoidance mechanism.

I tried this with the branch 4.1 and master. Both behave identical.

So from the kamailio-basic.cfg example, I just added this line around line 350 (just above route(SIPOUT)):

jsonrpc_request("bar.sendsms", "{'ru':'$rU','rb':'$rb'}", "JSONRESPONSE", "JSONERROR", "$var(result)"); 

Doing a ngrep on the netstrings I have:

interface: venet0 (127.0.0.2/255.255.255.255)  
filter: (ip or ip6) and ( port 7080 )
#
T 10.66.8.42:44995 -> 192.168.60.45:7080 [AP]
94:{ "id": 2, "jsonrpc": "2.0", "method": "bar.sendsms", "params": { "ru": "", "rb": "" } },  
##
T 192.168.60.45:7080 -> 10.66.8.42:44995 [AP]
43:{"jsonrpc": "2.0", "result": "12", "id": 2},  
####^Cexit
7 received, 0 dropped

I do get some results from the JSONRESPONSE route.

But when launching a call, or when sending just a register packet, kamailio gives up with:

Feb 26 06:29:11 SBC01 kamailio[18043]: WARNING: tm [t_lookup.c:1537]: t_unref(): WARNING: script writer didn't release transaction  
Feb 26 06:29:12 SBC01 kamailio[18033]: : [mem/q_malloc.c:468]: qm_free(): BUG: qm_free: freeing already freed pointer (0xb4c01624), called from tm: h_table.c: free_cell(157), first free tm: h_table.c: free_cell(157) - aborting
Feb 26 06:29:12 SBC01 kamailio[18023]: ALERT: [main.c:775]: handle_sigs(): child process 18033 exited by a signal 6
Feb 26 06:29:12 SBC01 kamailio[18023]: ALERT: [main.c:778]: handle_sigs(): core was generated
Feb 26 06:29:12 SBC01 kamailio[18023]: INFO: [main.c:790]: handle_sigs(): INFO: terminating due to SIGCHLD
Feb 26 06:29:12 SBC01 kamailio[18041]: INFO: [main.c:841]: sig_usr(): INFO: signal 15 received

Feb 26 06:29:12 SBC01 kamailio[18047]: INFO: [main.c:841]: sig_usr(): INFO: signal 15 received  
Feb 26 06:29:12 SBC01 kamailio[18043]: INFO: [main.c:841]: sig_usr(): INFO: signal 15 received
Feb 26 06:29:12 SBC01 kamailio[18048]: INFO: [main.c:841]: sig_usr(): INFO: signal 15 received
Feb 26 06:29:12 SBC01 kamailio[18023]: : [mem/q_malloc.c:468]: qm_free(): BUG: qm_free: freeing already freed pointer (0xb4c01624), called from tm: h_table.c: free_cell(157), first free tm: h_table.c: free_cell(157) - aborting

Using the jsonrpc_notification works like a charm.

I got coredumps of it, if someone is interested.

Side questions are offcourse, am I aiming to use jsonrpc_request for the correct purpose? Are there any other good alternatives? (next to using plain db queries?)

Grtz,
Davy

--  
davy van de moere





More information about the sr-users mailing list