Dear all, many times, when i call dialog_list on dialog module with jsonrpc, kamailio crash.
The version i use is: 4.4.2
Thanks for any suggestion.
################################################## gdb list: (gdb) list 1661 lock_get( &profile->lock ); 1662 for ( i=0 ; i< profile->size ; i++ ) { 1663 ph = profile->entries[i].first; 1664 if(ph) { 1665 do { 1666 if ((!value || (STR_EQ(*value, ph->value))) && ph->dlg) { 1667 /* print dialog */ 1668 internal_rpc_print_dlg(rpc, c, ph->dlg, 0); 1669 } 1670 /* next */ ################################################## gdb info locals: (gdb) info locals profile = 0x7f2a5098fb40 ph = 0x0 i = 10 ##################################################
#0 0x00007f2a706eb00a in internal_rpc_profile_print_dlgs (rpc=0x7f2a4fdf99a0, c=0x7f2a4fdf9940, profile_name=0x7fffb9fa8b10, value=0x0) at dialog.c:1666 1666 if ((!value || (STR_EQ(*value, ph->value))) && ph->dlg) { ##################################################
The dump , with bt full is this : #0 0x00007f2a706eb00a in internal_rpc_profile_print_dlgs (rpc=0x7f2a4fdf99a0, c=0x7f2a4fdf9940, profile_name=0x7fffb9fa8b10, value=0x0) at dialog.c:1666 profile = 0x7f2a5098fb40 ph = 0x0 i = 10 #1 0x00007f2a706eb6e4 in rpc_profile_print_dlgs (rpc=0x7f2a4fdf99a0, c=0x7f2a4fdf9940) at dialog.c:1772 profile_name = {s = 0x1c78b00 "outbound", len = 8} value = {s = 0x0, len = 0} #2 0x00007f2a4fbe45c6 in jsonrpc_dispatch (msg=0x7fffb9fa9f10, s1=0x0, s2=0x0) at jsonrpc-s_mod.c:1091 rpce = 0x7f2a75609360 ctx = 0x7f2a4fdf9940 ret = 0 nj = 0x1c76af0 val = {s = 0x1c77b20 "dlg.profile_list", len = 16} __FUNCTION__ = "jsonrpc_dispatch" #3 0x000000000041f4ad in do_action (h=0x7fffb9fa9e30, a=0x7f2a75584700, msg=0x7fffb9fa9f10) at action.c:1054 ret = -5 v = 4288256 dst = {send_sock = 0x1b9fa9b23, to = {s = {sa_family = 14080, sa_data = "Xu*\177\000\000\b7Xu*\177\000"}, sin = { sin_family = 14080, sin_port = 30040, sin_addr = {s_addr = 32554}, sin_zero = "\b7Xu*\177\000"}, sin6 = { sin6_family = 14080, sin6_port = 30040, sin6_flowinfo = 32554, sin6_addr = {__in6_u = { __u6_addr8 = "\b7Xu*\177\000\000S \205\000\060\000\000", __u6_addr16 = {14088, 30040, 32554, 0, 8275, 133, 48, 0}, __u6_addr32 = {1968715528, 32554, 8724563, 48}}}, sin6_scope_id = 26}}, id = 0, proto = 16 '\020', send_flags = { f = 155 '\233', blst_imask = 250 '\372'}} tmp = 0x7fffb9fab700 "\t" new_uri = 0x0 end = 0x0 crt = 0x7fffb9fa92d0 "" cmd = 0x7f2a754adcc0 len = 0 user = 0 uri = {user = {s = 0x12c <Address 0x12c out of bounds>, len = 0}, passwd = {s = 0x7fffb9fa92d0 "", len = 1969341184}, host = { s = 0x7f2a75475010 "\001", len = 4742114}, port = {s = 0x0, len = 0}, params = { s = 0x98206f7473 <Address 0x98206f7473 out of bounds>, len = 1969341256}, sip_params = { s = 0x7fffb9fa91e0 "`\222\372\271\377\177", len = 6538286}, headers = {s = 0x1c2b6f0 "\300\300\302\001", len = 0}, port_no = 50838, proto = 30049, type = 32554, flags = 0, transport = {s = 0x0, len = -940795965}, ttl = {s = 0x0, len = 0}, user_param = {s = 0x6222286e00000000 <Address 0x6222286e00000000 out of bounds>, len = 577270895}, maddr = { s = 0x3a746e65696c6309 <Address 0x3a746e65696c6309 out of bounds>, len = 0}, method = {s = 0x75c5f0 "core", len = -1174760864}, lr = {s = 0x764661 "rval_destroy", len = 7718524}, r2 = {s = 0x7f2a7561c348 "\002", len = 1967607824}, gr = {s = 0x7fffb9fa91b8 "H\303au*\177", len = 1967607824}, transport_val = {s = 0x7f2a7561c300 "\300\004", len = 1969341256}, ttl_val = {s = 0x7f2a7557e200 "\020", len = -1174760316}, user_param_val = {s = 0x7f2a75583700 "\002", len = 1969341256}, maddr_val = {s = 0x416f00 "1\355I\211\321^H\211\342H\203\344\360PTI\307\300\060\336q", len = -1174751488}, method_val = { ---Type <return> to continue, or q <return> to quit--- s = 0x0, len = 0}, lr_val = {s = 0x7fffb9fa9260 "Ð’\372\271\377\177", len = 5581478}, r2_val = {s = 0x0, len = 0}, gr_val = { s = 0x3a28d <Address 0x3a28d out of bounds>, len = 1969177728}} next_hop = {user = {s = 0x1c2b6f0 "\300\300\302\001", len = 1969330344}, passwd = { s = 0x69692c22 <Address 0x69692c22 out of bounds>, len = 29537760}, host = { s = 0x400000000 <Address 0x400000000 out of bounds>, len = -1174761304}, port = { s = 0x71657228 <Address 0x71657228 out of bounds>, len = 1969342102}, params = {s = 0x0, len = 1}, sip_params = {s = 0x0, len = -1174761328}, headers = {s = 0x1 <Address 0x1 out of bounds>, len = 2}, port_no = 40672, proto = 47610, type = 32767, flags = 3120206016, transport = {s = 0x7a6563697220616c <Address 0x7a6563697220616c out of bounds>, len = 1701736297}, ttl = { s = 0x7f2a75580848 "\001", len = -1174760828}, user_param = {s = 0x7fffb9fa9f10 "\b\005", len = -1174757840}, maddr = { s = 0x65722e2e223a7069 <Address 0x65722e2e223a7069 out of bounds>, len = 1702129517}, method = {s = 0x7f2a7561c696 "/sip", len = 29855024}, lr = {s = 0x0, len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x500000004 <Address 0x500000004 out of bounds>, len = 4}, transport_val = {s = 0x400000004 <Address 0x400000004 out of bounds>, len = 6552774}, ttl_val = { s = 0x7fffb9fa9060 "", len = 1967607824}, user_param_val = {s = 0x1000001 <Address 0x1000001 out of bounds>, len = 1967607824}, maddr_val = {s = 0x7fffb9fa90b0 "\020PGu*\177", len = 1956545302}, method_val = {s = 0x0, len = 0}, lr_val = {s = 0x1000000 <Address 0x1000000 out of bounds>, len = 14985000}, r2_val = { s = 0x165e80 <Address 0x165e80 out of bounds>, len = 1792216}, gr_val = {s = 0x1ed710 <Address 0x1ed710 out of bounds>, len = 8}} u = 0x7f2a75583f30 port = 0 dst_host = 0x7f2a75583700 i = 32767 flags = 0 avp = 0x7fffb9fa9e30 st = {flags = 151652617, id = 29193, name = {n = 0, s = {s = 0x6e65090a00000000 <Address 0x6e65090a00000000 out of bounds>, len = -1174761256}, re = 0x6e65090a00000000}, avp = 0x7fffb9fa9000} sct = 0x7fffb9fa94d0 sjt = 0x7fffb9fa9f10 rve = 0x416f00 mct = 0x7fffb9fab700 rv = 0x92922726f727265 rv1 = 0x0 c1 = {cache_type = 3120205776, val_type = 32767, c = {avp_val = {n = -940803561, s = { s = 0x31c7ec7a17 "\213D$8H\201\304\070\002", len = -1174757616}, re = 0x31c7ec7a17}, pval = {rs = { s = 0x31c7ec7a17 "\213D$8H\201\304\070\002", len = -1174757616}, ri = -1174757840, flags = 32767}}, i2s = "vp(s:inserver_erPor)","} s = {s = 0x1c2b6f0 "\300\300\302\001", len = 0} srevp = {0x0, 0x0} mod_f_params = {{type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, ---Type <return> to continue, or q <return> to quit--- select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}} __FUNCTION__ = "do_action" #4 0x000000000042c218 in run_actions (h=0x7fffb9fa9e30, a=0x7f2a75584700, msg=0x7fffb9fa9f10) at action.c:1549 t = 0x7f2a75584700 ret = -1 mod = 0x0 ms = 0 __FUNCTION__ = "run_actions" #5 0x000000000041f416 in do_action (h=0x7fffb9fa9e30, a=0x7f2a75585b10, msg=0x7fffb9fa9f10) at action.c:1045 ret = 1 v = 1 dst = {send_sock = 0x7fffb9fa9b50, to = {s = {sa_family = 64710, sa_data = "c\000\000\000\000\000\060\233\372\271\377\177\000"}, sin = {sin_family = 64710, sin_port = 99, sin_addr = {s_addr = 0}, sin_zero = "0\233\372\271\377\177\000"}, sin6 = { sin6_family = 64710, sin6_port = 99, sin6_flowinfo = 0, sin6_addr = {__in6_u = { __u6_addr8 = "0\233\372\271\377\177\000\000Ù¨bu*\177\000", __u6_addr16 = {39728, 47610, 32767, 0, 43225, 30050, 32554, 0}, __u6_addr32 = {3120208688, 32767, 1969400025, 32554}}}, sin6_scope_id = 366}}, id = 10, proto = -24 '\350', send_flags = {f = 234 '\352', blst_imask = 98 'b'}} tmp = 0x1467562aa20 <Address 0x1467562aa20 out of bounds> new_uri = 0x7a0a02 "parse_headers" end = 0x79db5c "core: parser/msg_parser.c" crt = 0x40 <Address 0x40 out of bounds> cmd = 0x7f2a75475010 len = 1967607824 user = 32554 uri = {user = {s = 0x0, len = 0}, passwd = {s = 0x7fffb9fa9b70 "@\234\372\271\004", len = 6529985}, host = { s = 0x416f00 "1\355I\211\321^H\211\342H\203\344\360PTI\307\300\060\336q", len = -1174751488}, port = {s = 0x0, len = 0}, params = {s = 0x7fffb9fa9ba0 "p\234\372\271\377\177", len = 6661320}, sip_params = {s = 0x7fffb9fa99f0 "", len = 1967607824}, headers = {s = 0x0, len = 1967607824}, port_no = 39488, proto = 47610, type = 32767, flags = 6552774, transport = { s = 0x7fffb9fa9a20 "", len = 1967607824}, ttl = {s = 0x1000000 <Address 0x1000000 out of bounds>, len = 1967607824}, user_param = {s = 0x7fffb9fa9a70 "\240\232\372\271\377\177", len = 1956545302}, maddr = { s = 0x1ed710 <Address 0x1ed710 out of bounds>, len = 0}, method = {s = 0x1000000 <Address 0x1000000 out of bounds>, len = 14986448}, lr = {s = 0x1658d8 <Address 0x1658d8 out of bounds>, len = 1790768}, r2 = { s = 0x1ed710 <Address 0x1ed710 out of bounds>, len = 8}, gr = {s = 0x12e <Address 0x12e out of bounds>, len = 1967607824}, transport_val = {s = 0x14600000000 <Address 0x14600000000 out of bounds>, len = 1969417808}, ttl_val = { s = 0x7fffb9fa9aa0 "\240\233\372\271\377\177", len = 4742114}, user_param_val = {s = 0x0, len = 1967607824}, maddr_val = { s = 0x0, len = 0}, method_val = {s = 0x7fffb9fa9ba0 "p\234\372\271\377\177", len = 6534031}, lr_val = {s = 0x79d630 "core", len = 6552774}, r2_val = {s = 0x7fffb9fa9b00 "n\001", len = 1969417880}, gr_val = {s = 0x7f2a7562aa20 "", len = 1969399988}} next_hop = {user = {s = 0x7fffb9fa9820 "", len = 1967607824}, passwd = {s = 0x1000000 <Address 0x1000000 out of bounds>, len = 1967607824}, host = {s = 0x7fffb9fa9870 "\240\230", <incomplete sequence \372\271>, len = 1956545302}, port = { ---Type <return> to continue, or q <return> to quit--- s = 0x1c588e1 "\311\305\001", len = 0}, params = {s = 0x1000000 <Address 0x1000000 out of bounds>, len = 14986216}, sip_params = {s = 0x1659c0 <Address 0x1659c0 out of bounds>, len = 1969416936}, headers = {s = 0x7f2a7562aa20 "", len = 1969399993}, port_no = 301, proto = 0, type = ERROR_URI_T, flags = 0, transport = { s = 0x7f2a7562a8d9 "Content-Type: application/json-rpc\r\nCache-Control: no-cache\r\nPragma: no-cache\r\nUser-Agent: Java/1.8.0_121\r\nHost: \r\nAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2\r\nConn"..., len = 0}, ttl = { s = 0xb9fa98a0 <Address 0xb9fa98a0 out of bounds>, len = 1969416936}, user_param = {s = 0x0, len = 1967607824}, maddr = { s = 0x0, len = 0}, method = {s = 0x7fffb9fa99a0 "\240\233\372\271\377\177", len = 6534031}, lr = {s = 0x79d630 "core", len = 0}, r2 = {s = 0x0, len = 0}, gr = {s = 0x7fffb9fa9e7c "\260\f\222\017", len = -1174757736}, transport_val = { s = 0x79d630 "core", len = -1174757704}, ttl_val = {s = 0x7a0a10 "get_hdr_field", len = 7986012}, user_param_val = { s = 0xe8 <Address 0xe8 out of bounds>, len = 1967607824}, maddr_val = {s = 0x79d630 "core", len = 1969416864}, method_val = { s = 0x7a0a10 "get_hdr_field", len = 7986012}, lr_val = {s = 0xe8 <Address 0xe8 out of bounds>, len = 1967607824}, r2_val = { s = 0x7f2a75475010 "\001", len = 1969416864}, gr_val = {s = 0x7f2a7562eaa0 <incomplete sequence \350>, len = 1969399988}} u = 0x7f2a7562ee50 port = 0 dst_host = 0x80067e961 i = 0 flags = 0 avp = 0x7f2a75475010 st = {flags = 3120207856, id = 32767, name = {n = 1967607824, s = {s = 0x7f2a75475010 "\001", len = 1969239958}, re = 0x7f2a75475010}, avp = 0x7f2a75475010} sct = 0x4b9fa9c40 sjt = 0x79d630 rve = 0x7f2a75582f20 mct = 0x7fffb9fab700 rv = 0x63fcc6 rv1 = 0x0 c1 = {cache_type = 43, val_type = RV_NONE, c = {avp_val = {n = 0, s = {s = 0x0, len = 7718384}, re = 0x0}, pval = {rs = {s = 0x0, len = 7718384}, ri = 26, flags = 0}}, i2s = "\t\000\000\000\000\000\000\000huTu*\177\000\000\000\000\000\000\000"} s = {s = 0x7fffb9fa99f0 "", len = 1969239512} srevp = {0x3000000018, 0x7fffb9fa9ab0} mod_f_params = {{type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}, {type = NOSUBTYPE, u = {number = 0, string = 0x0, str = {s = 0x0, len = 0}, data = 0x0, attr = 0x0, select = 0x0}}} __FUNCTION__ = "do_action"
I pushed a patch (referenced above) that hopefully fixes it -- a mutex was released at a wrong location, making the operations unsafe. The patch has been backported to 5.0 and 4.4, you will have to upgrade to latest versions of the git branches. If there is still an issue, reopen.
Closed #1032.