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

Rusty Newton (JIRA) noreply at issues.asterisk.org
Thu Mar 21 15:42:01 CDT 2013


Rusty Newton created ASTERISK-21308:
---------------------------------------

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


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