[SR-Users] CRASH on qm_free for simultaneous calls (V3.1.0)

Jijo realjijo at gmail.com
Thu Dec 16 00:34:59 CET 2010


I'm observing a crash on qm_free, when we made two outgoing calls to the
same number. One SIP phone receives ring back tone and the other busy tone.
The back trace is shown below which shows that it is crashed in abort(). How
can the condition   if (f->u.is_free){ could be true?
Please let me know if anybody observed this issue and let me know how to
debug this isssue.

    f=(struct qm_frag*) ((char*)p-sizeof(struct qm_frag));
#ifdef DBG_QM_MALLOC
    qm_debug_frag(qm, f);
    if (f->u.is_free){
        LOG(L_CRIT, "BUG: qm_free: freeing already freed pointer,"
                " first free: %s: %s(%ld) - aborting\n",
                f->file, f->func, f->line);*
        abort();*
    }
    MDBG("qm_free: freeing frag. %p alloc'ed from %s: %s(%ld)\n",
            f, f->file, f->func, f->line);
#endif


BACKTRACE
-------------------


Program received signal SIGABRT, Aborted.
0xb76fd7a5 in raise () from /lib/libc.so.6
(gdb) bt full
#0  0xb76fd7a5 in raise () from /lib/libc.so.6
No symbol table info available.
#1  0xb76ff070 in abort () from /lib/libc.so.6
No symbol table info available.
#2  0x081824d5 in qm_free (qm=0xaf7ee000, p=0xaf9ed758, file=0xb7659aed "tm:
h_table.c", func=0xb7659c9c "free_cell", line=141) at mem/q_malloc.c:447
        f = <value optimized out>
        prev = <value optimized out>
        next = <value optimized out>
        size = <value optimized out>
#3  0xb75ff6b9 in free_cell (dead_cell=0xaf9e7054) at h_table.c:141
        b = <value optimized out>
        i = <value optimized out>
        rpl = <value optimized out>
        tt = <value optimized out>
        foo = <value optimized out>
        cbs = <value optimized out>
        cbs_tmp = <value optimized out>
        __FUNCTION__ = "free_cell"
#4  0xb7625eb0 in t_unref (p_msg=0x847bb10) at t_lookup.c:1553
        kr = <value optimized out>
#5  0xb764b3ad in w_t_unref (foo=0x847bb10, flags=2147483649, bar=0x0) at
tm.c:707
No locals.
#6  0x0811543a in exec_post_script_cb (msg=0x847bb10, type=REQUEST_CB_TYPE)
at script_cb.c:195
        cb = 0x8867874
        flags = 2147483649
#7  0x080e5a4e in receive_msg (
    buf=0x82a89e0 "ACK sip:0845 at 10.80.13.54:5060;transport=udp
SIP/2.0\r\nVia: SIP/2.0/UDP
10.200.3.39:5060;branch=z9hG4bK0a992e8d3052e85e5\r\nRoute:
<sip:0845 at 10.200.0.31:5060;lr;transport=udp>\r\nMax-Forwards: 69\r\nFrom:
554"..., len=<value optimized out>, rcv_info=0xbf95b7fc) at receive.c:221
        msg = 0x847bb10
        ctx = {rec_lev = 137434160, run_flags = 0, last_retcode =
-1080707352, jmp_env = {{__jmpbuf = {-1224488143, 137089696, 137434092, 0,
-1080707248,
                -1080707304}, __mask_was_saved = 0, __saved_mask = {__val =
{3079133424, 134556827, 3079002384, 0, 3214260024, 3070479287, 137089696,
                  137434160, 3070572886, 3070573396, 228, 137347864,
3214260056, 3077419768, 3079002384, 137089664, 4294967295, 3079131124,
134556827,
                  134535424, 1, 3079058382, 3079133864, 3079003192, 1, 1, 0,
134555968, 0, 136548964, 3077419768, 142823652}}}}}
        ret = <value optimized out>
        inb = {
          s = 0x82a89e0 "ACK sip:0845 at 10.80.13.54:5060;transport=udp
SIP/2.0\r\nVia: SIP/2.0/UDP
10.200.3.39:5060;branch=z9hG4bK0a992e8d3052e85e5\r\nRoute:
<sip:0845 at 10.200.0.31:5060;lr;transport=udp>\r\nMax-Forwards: 69\r\nFrom:
554"..., len = 457}
        __FUNCTION__ = "receive_msg"
#8  0x08175cb6 in udp_rcv_loop () at udp_server.c:532
        len = <value optimized out>
        buf = "ACK sip:0845 at 10.80.13.54:5060;transport=udp SIP/2.0\r\nVia:
SIP/2.0/UDP 10.200.3.39:5060;branch=z9hG4bK0a992e8d3052e85e5\r\nRoute:
<sip:0845 at 10.200.0.31:5060;lr;transport=udp>\r\nMax-Forwards: 69\r\nFrom:
554"...
        from = 0x88350e4
        fromlen = 16
        ri = {src_ip = {af = 2, len = 4, u = {addrl = {654559242, 0,
3214260312, 3079002384}, addr32 = {654559242, 0, 3214260312, 3079002384},
addr16 = {
                51210, 9987, 0, 0, 47192, 49045, 55568, 46981}, addr =
"\n\310\003'\000\000\000\000X\270\225\277\020Ù
\267"}}, dst_ip = {af = 2, len = 4,
            u = {addrl = {520144906, 0, 0, 0}, addr32 = {520144906, 0, 0,
0}, addr16 = {51210, 7936, 0, 0, 0, 0, 0, 0},
              addr = "\n\310\000\037", '\000' <repeats 11 times>}}, src_port
= 5060, dst_port = 5060, proto_reserved1 = 0, proto_reserved2 = 0, src_su =
{
            s = {sa_family = 2, sa_data =
"\023\304\n\310\003'\000\000\000\000\000\000\000"}, sin = {sin_family = 2,
sin_port = 50195, sin_addr = {
                s_addr = 654559242}, sin_zero =
"\000\000\000\000\000\000\000"}, sin6 = {sin6_family = 2, sin6_port = 50195,
sin6_flowinfo = 654559242,
              sin6_addr = {__in6_u = {__u6_addr8 = '\000' <repeats 15
times>, __u6_addr16 = {0, 0, 0, 0, 0, 0, 0, 0}, __u6_addr32 = {0, 0, 0,
0}}},
              sin6_scope_id = 0}}, bind_address = 0x82f4140, proto = 1
'\001'}
        __FUNCTION__ = "udp_rcv_loop"
#9  0x080ac1d4 in main_loop () at main.c:1554
        i = <value optimized out>
---Type <return> to continue, or q <return> to quit---
        pid = <value optimized out>
        si = <value optimized out>
        si_desc = "udp receiver child=0 sock=10.200.0.31:5060\000\b
A\206\b\002\000\000\000\004\000\000\000\n\310\000\037L
\225\257H\271\225\277@
\030\207\267\020i\203\b\006\000\000\000\000\340~\257\001\000\000\000\001\000\000\000\000\000\000\000\000\340~\257\004\000\000\000?)\037\b\001\000\000\000\a\000\000\000\000\000\000\000H\271\225\277\350\353\017\b"
#10 0x080af2ec in main (argc=9, argv=0xbf95ba84) at main.c:2398
        cfg_stream = 0x8cbe008
        c = <value optimized out>
        r = <value optimized out>
        tmp = 0xbf95cdc0 ""
        tmp_len = -1217394389
        port = <value optimized out>
        proto = <value optimized out>
        options = 0x81ef340
":f:cm:dVhEb:l:L:n:vrRDTN:W:w:t:u:g:P:G:SQ:O:a:A:"
        ret = -1
        seed = 3337198521
        rfd = <value optimized out>
        debug_save = <value optimized out>
        debug_flag = <value optimized out>
        dont_fork_cnt = 0
        p = <value optimized out>

Thanks
Jijo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.sip-router.org/pipermail/sr-users/attachments/20101215/fb2c457c/attachment.htm>


More information about the sr-users mailing list