[OpenSIPS-Users] Opensips 2.3 Crash mid-registrar module

Kirill Galinurov k.galinurov at gmail.com
Wed Apr 19 03:27:03 EDT 2017


Hello. We continue testing Opensips-2.3 with mid-registrar module. Opensips
installed from yum.opensips.org/2.3/nightly/el/7/x86_64/opensips-yum-nightly
repo.
Config file.
loadmodule "mid_registrar.so"
modparam("mid_registrar", "mode", 1) /* 0 = mirror / 1 = ct / 2 = AoR */
modparam("mid_registrar", "outgoing_expires", 7200)
modparam("mid_registrar", "insertion_mode", 0) /* 0 = contact; 1 = path */
modparam("mid_registrar", "max_contacts", 1)
modparam("mid_registrar", "retry_after", 30)
modparam("mid_registrar", "contact_match_param", "rid")


if (is_method("REGISTER")) {
  mid_registrar_save("location", "v");
  switch ($retcode) {
  case 1:
    xlog("L_INFO", "forwarding REGISTER to main registrar ($$ci=$ci)\n");
    $ru = "sip:192.168.10.201:5061";
    if (!t_relay()) {
      send_reply("500", "Server Internal Error 1");
    }

    break;
  case 2:
    xlog("L_INFO", "REGISTER has been absorbed!\n");
    break;
  default:
    xlog("L_ERR", "mid-registrar error!\n");
    send_reply("500", "Server Internal Error 2");
  }

  exit;
}

And it crashed Opensips.

Apr 19 10:32:10 [23576] DBG:mid_registrar:mid_reg_ct_event: Contact
callback (8): contact='sip:2102 at 192.168.76.96:52788;rinstance=1661374fc8fce109;transport=UDP'
| param=(0x7ffff54c59c0 -> (nil)) | data[0]=((nil))

Program received signal SIGSEGV, Segmentation fault.
crcitt_string_array (dst=dst at entry=0x7ffff0e109e1 <from_tag+33> "",
src=src at entry=0x90, size=size at entry=1) at crc.c:225
225      len=src[i].len;

gdb core file:
#0  crcitt_string_array (dst=dst at entry=0x7ffff0e109e1 <from_tag+33> "",
src=src at entry=0x90, size=size at entry=1) at crc.c:225
        i = <optimized out>
        ccitt = 65535
        c = <optimized out>
        len = <optimized out>
        str_len = 4
        __FUNCTION__ = "crcitt_string_array"
#1  0x00007ffff0ba38e5 in generate_fromtag (tag=tag at entry=0x7fffffffdf70,
callid=callid at entry=0x90) at uac.c:118
No locals.
#2  0x00007ffff0b9da37 in new_auto_dlg_uac (_luri=0x80, _turi=0x70,
_ruri=0x10, callid=0x90, _sock=0x0, _d=<optimized out>) at dlg.c:210
        fromtag = {s = 0x1 <Address 0x1 out of bounds>, len = -145797379}
        clid = {s = 0x7ffff77a31c0 <_IO_2_1_stderr_> "\207(\255",
<incomplete sequence \373>, len = -146460574}
#3  0x00007fffef0666a9 in unregister_contact (mri=mri at entry=0x0) at
ulcb.c:122
        dlg = 0x7fff00000020
        ret = <optimized out>
        __FUNCTION__ = "unregister_contact"
#4  0x00007fffef066f30 in mid_reg_ct_event (binding=<optimized out>,
type=<optimized out>, data=<optimized out>) at ulcb.c:173
        c = <optimized out>
        mri = 0x0
        __FUNCTION__ = "mid_reg_ct_event"
#5  0x00007fffefb12a9b in run_ul_callbacks (binding=0x7ffff54c5890, type=8)
at ul_callback.h:126
        cbp = 0x7ffff5223ab8Apr 19 10:32:10 [23576]
DBG:mid_registrar:mid_reg_ct_event: Contact callback (8):
contact='sip:2102 at 192.168.76.96:52788;rinstance=1661374fc8fce109;transport=UDP'
| param=(0x7ffff54c59c0 -> (nil)) | data[0]=((nil))

Program received signal SIGSEGV, Segmentation fault.
crcitt_string_array (dst=dst at entry=0x7ffff0e109e1 <from_tag+33> "",
src=src at entry=0x90, size=size at entry=1) at crc.c:225
225      len=src[i].len;
        ct_extra_idx = 0
        aor_extra_idx = 0
        ele = 0x7ffff5223ad0
#6  wb_timer (ins_list=0x7ffff54afda0, _r=0x7ffff54c5890) at urecord.c:320
        old_state = <optimized out>
        ptr = 0x7ffff54c5890
        t = <optimized out>
        op = <optimized out>
        ins_done = 0
#7  timer_urecord (_r=_r at entry=0x7ffff54abee0,
ins_list=ins_list at entry=0x7ffff54afda0)
at urecord.c:396
No locals.
#8  0x00007fffefb04031 in mem_timer_udomain (_d=<optimized out>) at
udomain.c:1147
        ptr = 0x7ffff54abee0
        dest = <optimized out>
        i = 310
        ret = <optimized out>
        flush = 0
        it = {node = 0x0, map = 0x7ffff54be350}
        prev = {node = 0x7ffff54c57f0, map = 0x7ffff54be350}
        __FUNCTION__ = "mem_timer_udomain"
#9  0x00007fffefb201a1 in synchronize_all_udomains () at dlist.c:803
        res = 0
        ptr = 0x7ffff54afc98
#10 0x00007fffefb20d87 in destroy () at ul_mod.c:492
        __FUNCTION__ = "destroy"
#11 0x00000000004a5d71 in destroy_modules () at sr_module.c:527
        t = 0x7ffff72245a0
        foo = 0x7ffff7224250
        __FUNCTION__ = "destroy_modules"
#12 0x00000000004a2057 in cleanup (show_status=show_status at entry=1) at
main.c:319
        __FUNCTION__ = "cleanup"
#13 0x00000000004a2df2 in handle_sigs () at main.c:522
        chld = <optimized out>
        chld_status = 139
        overall_status = 139
        i = <optimized out>
        do_exit = 1
        __FUNCTION__ = "handle_sigs"
#14 0x000000000041c818 in main_loop () at main.c:722
        startup_done = <optimized out>
        chd_rank = 5
#15 main (argc=<optimized out>, argv=<optimized out>) at main.c:1283
        cfg_stream = <optimized out>
        c = <optimized out>
        r = <optimized out>
        tmp = 0xf0b2e4 <Address 0xf0b2e4 out of bounds>
        tmp_len = <optimized out>
        port = <optimized out>
        proto = <optimized out>
        protos_no = <optimized out>
        options = 0x57c0f8 "f:cCm:M:b:l:n:N:rRvdDFETSVhw:t:u:g:P:G:W😨:"
        seed = 2690059408
        rfd = <optimized out>
        __FUNCTION__ = "main"
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20170419/8d8be7c3/attachment.html>


More information about the Users mailing list