[asterisk-bugs] [JIRA] Updated: (ASTERISK-20537) Asterisk deadlocks between looking up extension from process_sdp and bridge execution from pbx_realtime

Matt Jordan (JIRA) noreply at issues.asterisk.org
Mon Oct 15 08:36:27 CDT 2012


     [ https://issues.asterisk.org/jira/browse/ASTERISK-20537?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matt Jordan updated ASTERISK-20537:
-----------------------------------

    Description: 
I have got lock on asterisk 1.8.16.0. Lock happens once week on incoming call. It happens in different points of dialplan. Files with backtrace and core show locks included.

[mjordan edit]:

Deadlock appears to be between {{ast_write}} called from bridge initiated from {{pbx_realtime}} and attempting to stop the autoservice on the channel (called from {{ast_exists_extension}} from {{process_sdp}}).  The problem here is that the autoservice waits indefinitely until the channel comes out of autoservice, which it can't do since the channel is already locked by {{chan_sip}}.

The channel cannot be locked when calling {{ast_exists_extension}}.

Quoting from the source header:

{code}
 * \note It is possible for autoservice to be started and stopped on c during this
 * function call, it is important that c is not locked prior to calling this. Otherwise
 * a deadlock may occur
{code}

  was:
Deadlock appears to be between {{ast_write}} called from bridge initiated from {{pbx_realtime}} and attempting to stop the autoservice on the channel (called from {{ast_exists_extension}} from {{process_sdp}}).  The problem here is that the autoservice waits indefinitely until the channel comes out of autoservice, which it can't do since the channel is already locked by {{chan_sip}}.

The channel cannot be locked when calling {{ast_exists_extension}}.

Quoting from the source header:

{code}
 * \note It is possible for autoservice to be started and stopped on c during this
 * function call, it is important that c is not locked prior to calling this. Otherwise
 * a deadlock may occur
{code}


> Asterisk deadlocks between looking up extension from process_sdp and bridge execution from pbx_realtime
> -------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-20537
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-20537
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Channels/chan_sip/General, PBX/pbx_realtime
>    Affects Versions: 1.8.16.0
>         Environment: Linux CentOs
>            Reporter: Yaroslav Radilov
>         Attachments: backtrace-threads.txt, core-show-locks.txt
>
>
> I have got lock on asterisk 1.8.16.0. Lock happens once week on incoming call. It happens in different points of dialplan. Files with backtrace and core show locks included.
> [mjordan edit]:
> Deadlock appears to be between {{ast_write}} called from bridge initiated from {{pbx_realtime}} and attempting to stop the autoservice on the channel (called from {{ast_exists_extension}} from {{process_sdp}}).  The problem here is that the autoservice waits indefinitely until the channel comes out of autoservice, which it can't do since the channel is already locked by {{chan_sip}}.
> The channel cannot be locked when calling {{ast_exists_extension}}.
> Quoting from the source header:
> {code}
>  * \note It is possible for autoservice to be started and stopped on c during this
>  * function call, it is important that c is not locked prior to calling this. Otherwise
>  * a deadlock may occur
> {code}

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list