[asterisk-bugs] [JIRA] (ASTERISK-22978) app_queue function queue_show() and find_queue_by_name_rt() cause deadlock

Rusty Newton (JIRA) noreply at issues.asterisk.org
Thu Dec 12 18:41:04 CST 2013


Rusty Newton created ASTERISK-22978:
---------------------------------------

             Summary: app_queue function queue_show() and find_queue_by_name_rt() cause deadlock 
                 Key: ASTERISK-22978
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-22978
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_queue
    Affects Versions: 1.8.24.0
         Environment: CentOS5.8 X64 DellR410 Asterisk 1.8 trunk version
            Reporter: Aaron An
            Severity: Critical


I use "queue show xxxx" to monitor queue status, and use realtime queue. concurrency is about 100 calls. deadlock will be occur after 10-30minutes.
analysis result:
in find_queue_by_name_rt() first lock single queue "ao2_lock(q);" and then lock global queues "queues_t_unlink(queues, q, "Unused; removing from container");";
in __queues_show() first lock global queues "ao2_lock(queues);" then lock single queue "ao2_lock(q);"

so it causes dead lock.


--
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