[asterisk-bugs] [JIRA] (ASTERISK-26284) pjsip: Deadlock with suspend + masquerade (Alternate scenarios)
Richard Mudgett (JIRA)
noreply at issues.asterisk.org
Wed Aug 10 16:12:56 CDT 2016
Richard Mudgett created ASTERISK-26284:
------------------------------------------
Summary: pjsip: Deadlock with suspend + masquerade (Alternate scenarios)
Key: ASTERISK-26284
URL: https://issues.asterisk.org/jira/browse/ASTERISK-26284
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Channels/chan_pjsip, Resources/res_pjsip
Affects Versions: 13.10.0
Reporter: Richard Mudgett
This issue describes a couple unlikely scenarios that can deadlock PJSIP channels similar to the deadlock seen in ASTERISK-26145. For the moment these scenarios are theoretical for busy systems.
Scenario 1:
# A calls B
# While B is ringing C does a channel driver call pickup (features pickupexten option)
# At the same time another call pickup with D, E, and F do the same thing as A, B, and C respectively.
Call pickups currently require a masquerade to implement the pickup. Thus, if C and E are handled by serializer S1 while B and F are handled by serializer S2 then a deadlock will happen if the C and F INVITE processing tasks are queued in the serializers before either is processed.
A simple fix for scenario 1 is to make call_pickup_incoming_request() package the code that calls ast_pickup_call() into a routine and push it to a serializer not used for handling calls. The pjsip/default serializers are handy for this since they are not used for call handling any more.
Another scenerio
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list