[asterisk-bugs] [JIRA] (ASTERISK-24595) chan_sip.c Deadlock on SMP

Matt Jordan (JIRA) noreply at issues.asterisk.org
Mon Jan 12 09:37:34 CST 2015


    [ https://issues.asterisk.org/jira/browse/ASTERISK-24595?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=224380#comment-224380 ] 

Matt Jordan commented on ASTERISK-24595:
----------------------------------------

It is pretty clear looking at your thread backtrace that something is not correct in the Asterisk binary/modules:

{noformat}
Thread 27 (Thread 0x2b1873e0 (LWP 25986)):
#0  0x2ada55e4 in __libc_do_syscall () from /lib/libpthread.so.0
#1  0x2ada1146 in pthread_cond_wait@@GLIBC_2.4 () from /lib/libpthread.so.0
#2  0x2abf0266 in pthread_cond_wait () from /lib/libc.so.6
#3  0x00124c54 in __ast_cond_wait ()
#4  0x001b2f6c in ?? ()
#5  0x001b2f6c in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)
{noformat}

Not only do you have symbols stripped out, but you also have stack frames that are mucked up. Something here is odd, and developers aren't going to be able to figure it out from what you've provided.

There are good instructions on the wiki on how to get information during a deadlock, including what options should be selected in Asterisk to build it correctly:

https://wiki.asterisk.org/wiki/display/AST/Getting+a+Backtrace

Please follow the linked instructions, getting the output of 'core show locks' as well as as the output from GDB.

> chan_sip.c Deadlock on SMP
> --------------------------
>
>                 Key: ASTERISK-24595
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-24595
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General
>    Affects Versions: 11.14.1, 11.14.2, 11.15.0
>         Environment: Linux home 3.0.35PD14.0.0 #8 SMP PREEMPT Tue Nov 25 22:18:16 MSK 2014 armv7l GNU/Linux
> Platform: iMX6 quad (armh)
> OS: Altlinux sisyphus based.
>            Reporter: Grigory Milev
>            Assignee: Grigory Milev
>         Attachments: backtrace-threads.txt.bz2, core-show-locks.txt.bz2, debuglog.bz2, more-logs.tar.bz2
>
>
> When asterisk runed on all cpu cores, fue times pear day sip deadlocked:
> {noformat}
> [2014-12-03 12:50:30] ERROR[26839] lock.c: chan_sip.c line 20849 (show_channels_cb): Deadlock? waited 85 sec for mutex 'cur'?
> [2014-12-03 12:50:30] ERROR[26839] lock.c: chan_sip.c line 3940 (retrans_pkt): 'cur' was locked here.
> [2014-12-03 12:50:35] ERROR[26839] lock.c: chan_sip.c line 20849 (show_channels_cb): Deadlock? waited 90 sec for mutex 'cur'?
> {noformat}
> When i load asterisk only on one core (taskset -a 0x0001 asterisk -fn), then no dedalock at all, but the next dead sip channels:
> {noformat}
> home*CLI> sip show channels
> Peer             User/ANR         Call ID          Format           Hold     Last Message    Expiry     Peer
> 37.17.17.73      205              74439a312ea2eab  (nothing)        No       Init: NOTIFY               <guest>
> 37.17.114.246    205              30a22f2359ff7ee  (nothing)        No       Init: NOTIFY               <guest>
> 37.17.114.246    205              1b4153685e957cd  (nothing)        No       Init: NOTIFY               <guest>
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list