[OpenSIPS-Users] segfault in mem/f_malloc.c
Bogdan-Andrei Iancu
bogdan at opensips.org
Mon Feb 28 22:02:01 CET 2011
Hi Bobby,
Is this the same case as the one you reported on the SF tracker?
Regards,
Bogdan
Bobby Smith wrote:
> This is on revision 7081.
>
> It seems to be fairly consistently happening around free_dlg_dlg in
> dlg_hash.c which is triggering it -- we have several cores showing
> this behavior.
>
> What are the next steps for debugging this? This is on a production
> machine and we haven't been able to reproduce it elsewhere, so we are
> somewhat sensitive to load issues while trying to troubleshoot this.
>
> Thanks.
>
>
>
> Program terminated with signal 11, Segmentation fault.
> #0 0x00000000004a2bcf in fm_insert_free (qm=0x2b875eba4000, p=<value
> optimized out>) at mem/f_malloc.c:155
> 155 (*f)->prev = &(frag->u.nxt_free);
> (gdb) bt full
> #0 0x00000000004a2bcf in fm_insert_free (qm=0x2b875eba4000, p=<value
> optimized out>) at mem/f_malloc.c:155
> f = 0x2b875eba4070
> hash = 3
> #1 fm_free (qm=0x2b875eba4000, p=<value optimized out>) at
> mem/f_malloc.c:460
> f = 0x2b875f41be40
> n = <value optimized out>
> __FUNCTION__ = "fm_free"
> #2 0x00002b875e14dcde in free_dlg_dlg () at dlg_hash.c:168
> i = 0
> #3 destroy_dlg_table () at dlg_hash.c:234
> dlg = 0x2b875f319a80
> i = 5
> #4 0x00002b875e13a651 in mod_destroy () at dialog.c:742
> No locals.
> #5 0x0000000000476ff4 in destroy_modules () at sr_module.c:370
> t = 0x785328
> foo = 0x785258
> #6 0x00000000004252e0 in cleanup (show_status=1) at main.c:336
> No locals.
> #7 0x00000000004261fb in handle_sigs () at main.c:533
> chld = 0
> chld_status = 139
> i = <value optimized out>
> do_exit = 1
> __FUNCTION__ = "handle_sigs"
> #8 0x000000000042a5a9 in main_loop (argc=3, argv=0x4) at main.c:913
> i = 4
> pid = <value optimized out>
> si = 0x0
> startup_done = 0x0
> chd_rank = 16
> __FUNCTION__ = "main_loop"
> #9 main (argc=3, argv=0x4) at main.c:1388
> cfg_log_stderr = <value optimized out>
> cfg_stream = 0x831e010
> c = <value optimized out>
> r = <value optimized out>
> tmp = 0x4fc447 "H\215\005\262\333#"
> tmp_len = <value optimized out>
> port = <value optimized out>
> proto = <value optimized out>
> ret = <value optimized out>
> seed = 586369539
> rfd = <value optimized out>
> __FUNCTION__ = "main"
> (gdb)
>
>
> (gdb) frame 0
> #0 0x00000000004a2bcf in fm_insert_free (qm=0x2b875eba4000, p=<value
> optimized out>) at mem/f_malloc.c:155
> 155 (*f)->prev = &(frag->u.nxt_free);
> (gdb) list
> 150
> 151 /*insert it here*/
> 152 frag->prev = f;
> 153 frag->u.nxt_free=*f;
> 154 if( *f )
> 155 (*f)->prev = &(frag->u.nxt_free);
> 156
> 157 *f=frag;
> 158 qm->free_hash[hash].no++;
> 159 free_plus(qm , frag->size);
> (gdb) info locals
> f = 0x2b875eba4070
> hash = 3
> (gdb) print *f
> $1 = (struct fm_frag *) 0x2b865f235290
> (gdb) print *(*f)
> Cannot access memory at address 0x2b865f235290
> (gdb) frame 1
> #1 fm_free (qm=0x2b875eba4000, p=<value optimized out>) at
> mem/f_malloc.c:460
> 460 fm_insert_free(qm, f);
> (gdb) print f
> $2 = (struct fm_frag *) 0x2b875f41be40
> (gdb) list
> 455 goto join;
> 456 }
> 457
> 458 no_join:
> 459
> 460 fm_insert_free(qm, f);
> 461 }
> 462
> 463
> 464 #ifdef DBG_F_MALLOC
> (gdb)
>
>
> And a second crash here a few hours after restarting from above:
>
> Core was generated by `/usr/local/opensips/sbin/opensips -u opensips'.
> Program terminated with signal 11, Segmentation fault.
> #0 0x00000000004a2bcf in fm_insert_free (qm=0x2aca30c14000, p=<value
> optimized out>) at mem/f_malloc.c:155
> 155 (*f)->prev = &(frag->u.nxt_free);
> (gdb) bt full
> #0 0x00000000004a2bcf in fm_insert_free (qm=0x2aca30c14000, p=<value
> optimized out>) at mem/f_malloc.c:155
> f = 0x2aca30c14070
> hash = 3
> #1 fm_free (qm=0x2aca30c14000, p=<value optimized out>) at
> mem/f_malloc.c:460
> f = 0x2aca315c1718
> n = <value optimized out>
> __FUNCTION__ = "fm_free"
> #2 0x00002aca301bdcde in free_dlg_dlg () at dlg_hash.c:168
> i = 0
> #3 destroy_dlg_table () at dlg_hash.c:234
> dlg = 0x2aca31692c70
> i = 0
> #4 0x00002aca301aa651 in mod_destroy () at dialog.c:742
> No locals.
> #5 0x0000000000476ff4 in destroy_modules () at sr_module.c:370
> t = 0x785328
> foo = 0x785258
> #6 0x00000000004252e0 in cleanup (show_status=1) at main.c:336
> No locals.
> #7 0x00000000004261fb in handle_sigs () at main.c:533
> chld = 0
> chld_status = 139
> i = <value optimized out>
> do_exit = 1
> __FUNCTION__ = "handle_sigs"
> #8 0x000000000042a5a9 in main_loop (argc=3, argv=0x4) at main.c:913
> i = 4
> pid = <value optimized out>
> si = 0x0
> startup_done = 0x0
> chd_rank = 16
> __FUNCTION__ = "main_loop"
> #9 main (argc=3, argv=0x4) at main.c:1388
> cfg_log_stderr = <value optimized out>
> cfg_stream = 0x14cfb010
> c = <value optimized out>
> r = <value optimized out>
> tmp = 0x4fc447 "H\215\005\262\333#"
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
--
Bogdan-Andrei Iancu
OpenSIPS eBootcamp - 28th February 2011
OpenSIPS solutions and "know-how"
More information about the Users
mailing list