[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