[Home]

Summary:ASTERISK-17165: app_queue deadlocks if weight is set
Reporter:Patrick Plattes (mrparity)Labels:
Date Opened:2010-12-27 03:29:26.000-0600Date Closed:2010-12-27 03:36:49.000-0600
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Applications/app_queue
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:If more than one agend is at the queue and weight is enabled asterisk deadlocks. That configuration is working fine:

[sales_de]
strategy = ringall
timeout = 20
wrapuptime = 0
autofill = yes
autopause = no
maxlen = 0
ringinuse = no
musicclass = queue-sales-de
servicelevel = 30
;weight=10
joinempty=unavailable

[sales_fr]
strategy = ringall
timeout = 20
wrapuptime = 0
autofill = yes
autopause = no
maxlen = 0
ringinuse = no
musicclass = queue-sales-fr
servicelevel = 30
;weight=20
joinempty=unavailable

[sales_2l]
strategy = ringall
timeout = 20
wrapuptime = 0
autofill = yes
autopause = no
maxlen = 0
ringinuse = no
musicclass = queue-sales-fr
servicelevel = 30
;weight=10
joinempty=unavailable


But if you uncomment 'weight' asterisk deadlocks.

****** ADDITIONAL INFORMATION ******

=======================================================================
=== Currently Held Locks ==============================================
=======================================================================
===
=== <pending> <lock#> (<file>): <lock type> <line num> <function> <lock name> <lock addr> (times locked)
===
=== Thread ID: 140214176835344 (tps_processing_function started at [  451] taskprocessor.c ast_taskprocessor_get())
=== ---> Lock #0 (pbx.c): MUTEX 9911 ast_rdlock_contexts &conlock 0x856080 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(ast_rdlock_contexts+0x23) [0x522391]
       /usr/sbin/asterisk() [0x50e07c]
       /usr/sbin/asterisk() [0x5555c6]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Lock #1 (pbx.c): MUTEX 4271 handle_statechange hints 0x8f66b8 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/sbin/asterisk() [0x50e0a0]
       /usr/sbin/asterisk() [0x5555c6]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Lock #2 (pbx.c): MUTEX 4272 handle_statechange hint 0x7f86253e68f8 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/sbin/asterisk() [0x50e0c1]
       /usr/sbin/asterisk() [0x5555c6]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Waiting for Lock #3 (astobj2.c): MUTEX 838 internal_ao2_iterator_next a->c 0x7f8624a26c18 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/sbin/asterisk() [0x44a5b0]
       /usr/sbin/asterisk(__ao2_iterator_next+0x2f) [0x44a9f1]
       /usr/lib/asterisk/modules/app_queue.so(+0x82af) [0x7f860db7a2af]
       /usr/sbin/asterisk() [0x50e15d]
       /usr/sbin/asterisk() [0x5555c6]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== --- ---> Locked Here: app_queue.c line 4261 (try_calling)
=== -------------------------------------------------------------------
===
=== Thread ID: 140213451306768 (do_monitor           started at [24408] chan_sip.c restart_monitor())
=== ---> Lock #0 (chan_sip.c): MUTEX 23902 handle_request_do &netlock 0x7f8615800c40 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d41b) [0x7f86155b541b]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d210) [0x7f86155b5210]
       /usr/sbin/asterisk(ast_io_wait+0x1c4) [0x4deb28]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7f013) [0x7f86155b7013]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Lock #1 (chan_sip.c): MUTEX 7464 find_call sip_pvt_ptr 0x7f8624f970e8 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/lib/asterisk/modules/chan_sip.so(+0x298eb) [0x7f86155618eb]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d435) [0x7f86155b5435]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d210) [0x7f86155b5210]
       /usr/sbin/asterisk(ast_io_wait+0x1c4) [0x4deb28]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7f013) [0x7f86155b7013]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Waiting for Lock #2 (pbx.c): MUTEX 9911 ast_rdlock_contexts &conlock 0x856080 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(ast_rdlock_contexts+0x23) [0x522391]
       /usr/sbin/asterisk() [0x50dc53]
       /usr/sbin/asterisk(ast_get_hint+0x36) [0x50ee34]
       /usr/lib/asterisk/modules/chan_sip.so(+0x4d7e1) [0x7f86155857e1]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7a03c) [0x7f86155b203c]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7c7f1) [0x7f86155b47f1]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d981) [0x7f86155b5981]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d210) [0x7f86155b5210]
       /usr/sbin/asterisk(ast_io_wait+0x1c4) [0x4deb28]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7f013) [0x7f86155b7013]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== --- ---> Locked Here: pbx.c line 9911 (ast_rdlock_contexts)
=== -------------------------------------------------------------------
===
=== Thread ID: 140213446227728 (tps_processing_function started at [  451] taskprocessor.c ast_taskprocessor_get())
=== ---> Waiting for Lock #0 (astobj2.c): MUTEX 838 internal_ao2_iterator_next a->c 0x7f8624a26c18 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/sbin/asterisk() [0x44a5b0]
       /usr/sbin/asterisk(__ao2_iterator_next+0x2f) [0x44a9f1]
       /usr/lib/asterisk/modules/app_queue.so(+0x82af) [0x7f860db7a2af]
       /usr/sbin/asterisk() [0x50e15d]
       /usr/sbin/asterisk() [0x5555c6]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== --- ---> Locked Here: app_queue.c line 4261 (try_calling)
=== -------------------------------------------------------------------
===
=== Thread ID: 140213445211920 (pbx_thread           started at [ 5035] pbx.c ast_pbx_start())
=== ---> Lock #0 (app_queue.c): MUTEX 4261 try_calling queues 0x7f8624a26c18 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/lib/asterisk/modules/app_queue.so(+0x16c0a) [0x7f860db88c0a]
       /usr/lib/asterisk/modules/app_queue.so(+0x1e240) [0x7f860db90240]
       /usr/sbin/asterisk(pbx_exec+0x1fb) [0x503aa9]
       /usr/sbin/asterisk() [0x50d7ce]
       /usr/sbin/asterisk(ast_spawn_extension+0x65) [0x50f201]
       /usr/sbin/asterisk() [0x50fc69]
       /usr/sbin/asterisk() [0x511802]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Lock #1 (chan_sip.c): MUTEX 6524 sip_new i 0x7613408 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(__ao2_lock+0x5a) [0x449064]
       /usr/lib/asterisk/modules/chan_sip.so(+0x249d0) [0x7f861555c9d0]
       /usr/lib/asterisk/modules/chan_sip.so(+0x83061) [0x7f86155bb061]
       /usr/sbin/asterisk(ast_request+0x27e) [0x47c8cd]
       /usr/lib/asterisk/modules/app_queue.so(+0x10c76) [0x7f860db82c76]
       /usr/lib/asterisk/modules/app_queue.so(+0x120eb) [0x7f860db840eb]
       /usr/lib/asterisk/modules/app_queue.so(+0x17800) [0x7f860db89800]
       /usr/lib/asterisk/modules/app_queue.so(+0x1e240) [0x7f860db90240]
       /usr/sbin/asterisk(pbx_exec+0x1fb) [0x503aa9]
       /usr/sbin/asterisk() [0x50d7ce]
       /usr/sbin/asterisk(ast_spawn_extension+0x65) [0x50f201]
       /usr/sbin/asterisk() [0x50fc69]
       /usr/sbin/asterisk() [0x511802]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== ---> Waiting for Lock #2 (pbx.c): MUTEX 9911 ast_rdlock_contexts &conlock 0x856080 (1)
       /usr/sbin/asterisk(ast_bt_get_addresses+0x1d) [0x4eb771]
       /usr/sbin/asterisk(__ast_pthread_mutex_lock+0xaf) [0x4e4854]
       /usr/sbin/asterisk(ast_rdlock_contexts+0x23) [0x522391]
       /usr/sbin/asterisk() [0x50dc53]
       /usr/sbin/asterisk(ast_get_hint+0x36) [0x50ee34]
       /usr/lib/asterisk/modules/chan_sip.so(+0x4d7e1) [0x7f86155857e1]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7a03c) [0x7f86155b203c]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7c7f1) [0x7f86155b47f1]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d981) [0x7f86155b5981]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7d210) [0x7f86155b5210]
       /usr/sbin/asterisk(ast_io_wait+0x1c4) [0x4deb28]
       /usr/lib/asterisk/modules/chan_sip.so(+0x7f013) [0x7f86155b7013]
       /usr/sbin/asterisk() [0x567497]
       /lib/libpthread.so.0(+0x68ba) [0x7f862bbec8ba]
       /lib/libc.so.6(clone+0x6d) [0x7f862967602d]
=== --- ---> Locked Here: pbx.c line 9911 (ast_rdlock_contexts)
=== -------------------------------------------------------------------
===
=======================================================================
Comments:By: Stefan Schmidt (schmidts) 2010-12-27 03:36:49.000-0600

closed with agreement of creator on irc cause its a duplicate of 18310