[asterisk-bugs] [JIRA] (ASTERISK-25023) Deadlock in chan_sip in update_provisional_keepalive

Arnd Schmitter (JIRA) noreply at issues.asterisk.org
Tue Apr 28 05:10:33 CDT 2015


Arnd Schmitter created ASTERISK-25023:
-----------------------------------------

             Summary: Deadlock in chan_sip in update_provisional_keepalive
                 Key: ASTERISK-25023
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25023
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Channels/chan_sip/General
    Affects Versions: 13.3.2
         Environment: centos 6 / 64Bit
            Reporter: Arnd Schmitter


There is a race condition / deadlock when update_provisional_keepalive is called.
If there is already a scheduler run plant for calling send_provisional_keepalive_full.

the func update_provisional_keepalive gets called with a locked sip_pvt struct and the first thing it does is delete the plant scheduler.
If the plant scheduler is started after the sip_pvt lock and before the AST_SCHED_DEL_UNREF call in update_provisional_keepalive is executed, the scheduler job is blocked in send_provisional_keepalive_full, waiting to get a lock on the sip_pvt struct.

The call to AST_SCHED_DEL_UNREF is waiting for a condistion signal, that the running scheduler finish.






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



More information about the asterisk-bugs mailing list