[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