[asterisk-bugs] [JIRA] (ASTERISK-21234) Deadlock when using two Local channels & fax gateway (local_queryoption)

Faidon Liambotis (JIRA) noreply at issues.asterisk.org
Mon Mar 11 12:24:01 CDT 2013


Faidon Liambotis created ASTERISK-21234:
-------------------------------------------

             Summary: Deadlock when using two Local channels & fax gateway (local_queryoption)
                 Key: ASTERISK-21234
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-21234
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Channels/chan_local
    Affects Versions: 11.2.1
            Reporter: Faidon Liambotis
         Attachments: 2, 3

There's a corner case when using two Local channels in series and having the T.38 fax gateway enabled. It seems there's a race and eventual deadlock on two channel locks (AB/BA). This quickly brings the rest of the system down (SIP monitoring thread gets stuck as is every other operation which enumerates channels and trying to get locks on them).

The issue is fully reproducible using a load generator in 5-10' using this purposefully trivialized dialplan:
{code}
[incoming]
exten => _X.,1,Set(FAXOPT(gateway)=yes)
exten => _X.,2,Dial(Local/${EXTEN}@local2)

[local2]
exten => _X.,1,Set(FAXOPT(gateway)=yes)
exten => _X.,2,Dial(Local/${EXTEN}@local1)

[local1]
exten => _X.,1,Set(FAXOPT(gateway)=yes)
exten => _X.,2,Dial(SIP/sip2/${EXTEN})
{code}

Attached is the backtrace for the two deadlocked threads when running with the above dialplan.

Both threads lock their respective channels in {{ast_indicate_data}}, then race in {{local_queryoption}} and deadlock each other. The whole process of locking/unlocking in {{local_queryoption}} looks fishy and is most likely the culrpit of this deadlock.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list