Summary: | ASTERISK-17165: app_queue deadlocks if weight is set | ||
Reporter: | Patrick Plattes (mrparity) | Labels: | |
Date Opened: | 2010-12-27 03:29:26.000-0600 | Date Closed: | 2010-12-27 03:36:49.000-0600 |
Priority: | Major | Regression? | No |
Status: | Closed/Complete | Components: | 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 |