[asterisk-bugs] [JIRA] (ASTERISK-27706) PJSIP: Deadlock shutting down subscription TCP connection and sending subscription message.

Chris Savinovich (JIRA) noreply at issues.asterisk.org
Thu Apr 19 13:26:55 CDT 2018


     [ https://issues.asterisk.org/jira/browse/ASTERISK-27706?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chris Savinovich updated ASTERISK-27706:
----------------------------------------

    Target Release Version/s: 13.21.0

> PJSIP: Deadlock shutting down subscription TCP connection and sending subscription message.
> -------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-27706
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27706
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/AstDB
>    Affects Versions: 13.19.2, GIT
>         Environment: Fedora 23
>            Reporter: Ross Beer
>            Assignee: Richard Mudgett
>              Labels: pjsip
>      Target Release: 13.21.0
>
>         Attachments: core.174244-thread1.txt, core.6829-thread1.txt, Thread_103.txt
>
>
> A deadlock can happen when the PJSIP monitor thread is shutting down a connection oriented transport (TCP/TLS) used by a subscription at the same time as another thread tries to send something for that subscription.  The deadlock is between the pjsip monitor thread attempting to get the dialog lock and another thread sending something for that dialog when it tries to get the transport manager lock.
> To verify this deadlock:
> * Get a full backtrace of all threads when in deadlock.
> * Search for the pjsip monitor thread.  It will be the one executing monitor_thread_exec().
> * The monitor thread will be attempting to get the dlg (dialog) lock.
> * Search for another thread doing something with the same dlg pointer.  It will be trying to send something.
> * That thread will be attempting to get the tpmgr/mgr (transport manager) lock.
> * The tpmgr/mgr pointer will be the same as the one being used by the pjsip monitor thread since it is trying to shut that transport down.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list