[asterisk-bugs] [JIRA] (ASTERISK-29841) APP Queue Deadlock

Asterisk Team (JIRA) noreply at issues.asterisk.org
Thu Jan 6 10:13:07 CST 2022


    [ https://issues.asterisk.org/jira/browse/ASTERISK-29841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=257657#comment-257657 ] 

Asterisk Team commented on ASTERISK-29841:
------------------------------------------

Per the Asterisk versions page [1], the maintenance (bug fix) support for the Asterisk branch you are using has ended. For continued maintenance support please move to a supported branch of Asterisk. After testing with a supported branch, if you find this problem has not been resolved, please open a new issue against the latest version of that Asterisk branch.

Thanks!

[1] https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions

> APP Queue Deadlock
> ------------------
>
>                 Key: ASTERISK-29841
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29841
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_queue
>    Affects Versions: 13.38.3
>         Environment: VMWare Virtual Machine
> 16 x vCPU
> 16 GB RAM
>            Reporter: André Emerich
>            Severity: Major
>
> Hi,
> We are facing a problem with app_queue.
> From time to time Asterisk stops accepting the command "queue show" and it is not possible to give any more commands of this type. As it is a production environment, we enabled DEBUG_THREAD for a short moment and managed to get the evidence below:
> =======================================================================
> === 13.38.3
> === Currently Held Locks
> =======================================================================
> ===
> === <pending> <lock#> (<file>): <lock type> <line num> <function> <lock name> <lock addr> (times locked)
> ===
> === Thread ID: 0x7f8994743700 LWP:23185 (default_tps_processing_function started at [  228] taskprocessor.c default_listener_start())
> === ---> Lock #0 (app_queue.c): MUTEX 2430 device_state_cb q 0x3206420 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x1c334) [0x7f89adab9334]
> 	/usr/sbin/asterisk() [0x5d6435]
> 	/usr/sbin/asterisk() [0x5d6740]
> 	/usr/sbin/asterisk(ast_taskprocessor_execute+0x167) [0x5f2d27]
> 	/usr/sbin/asterisk() [0x5f2de0]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === ---> Waiting for Lock #1 (astobj2_container.c): MUTEX 608 internal_ao2_iterator_next iter->c 0x31b6270 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/sbin/asterisk() [0x45dc4d]
> 	/usr/sbin/asterisk(__ao2_find+0x2d) [0x45e35d]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x13a8e) [0x7f89adab0a8e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x162f5) [0x7f89adab32f5]
> 	/usr/sbin/asterisk(ast_cli_command_full+0x689) [0x4d9209]
> 	/usr/sbin/asterisk() [0x55e04d]
> 	/usr/sbin/asterisk() [0x54f5d8]
> 	/usr/sbin/asterisk() [0x55d15b]
> 	/usr/sbin/asterisk() [0x5f5eed]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 9255 (__queues_show)
> === -------------------------------------------------------------------
> ===
> === Thread ID: 0x7f894782f700 LWP:24184 (handle_tcptls_connection started at [  918] tcptls.c ast_tcptls_server_root())
> === ---> Lock #0 (app_queue.c): MUTEX 9255 __queues_show queues 0x31b6270 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x1567b) [0x7f89adab267b]
> 	/usr/sbin/asterisk(ast_cli_command_full+0x689) [0x4d9209]
> 	/usr/sbin/asterisk() [0x55e04d]
> 	/usr/sbin/asterisk() [0x54f5d8]
> 	/usr/sbin/asterisk() [0x55d15b]
> 	/usr/sbin/asterisk() [0x5f5eed]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === ---> Waiting for Lock #1 (app_queue.c): MUTEX 9261 __queues_show q 0x3206420 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9760) [0x7f89adaa6760]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9983) [0x7f89adaa6983]
> 	/usr/sbin/asterisk(ast_bridge_call_with_flags+0x112) [0x50ffd2]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2aad7) [0x7f89adac7ad7]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2ce38) [0x7f89adac9e38]
> 	/usr/sbin/asterisk(pbx_exec+0xcc) [0x591e7c]
> 	/usr/sbin/asterisk() [0x585a8f]
> 	/usr/sbin/asterisk() [0x587b82]
> 	/usr/sbin/asterisk() [0x5896db]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 2430 (device_state_cb)
> === -------------------------------------------------------------------
> ===
> === Thread ID: 0x7f89463ad700 LWP:29630 (pbx_thread           started at [ 4687] pbx.c ast_pbx_start())
> === ---> Waiting for Lock #0 (app_queue.c): MUTEX 1848 set_queue_variables q 0x3206420 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9760) [0x7f89adaa6760]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9983) [0x7f89adaa6983]
> 	/usr/sbin/asterisk(ast_bridge_call_with_flags+0x112) [0x50ffd2]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2aad7) [0x7f89adac7ad7]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2ce38) [0x7f89adac9e38]
> 	/usr/sbin/asterisk(pbx_exec+0xcc) [0x591e7c]
> 	/usr/sbin/asterisk() [0x585a8f]
> 	/usr/sbin/asterisk() [0x587b82]
> 	/usr/sbin/asterisk() [0x5896db]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 2430 (device_state_cb)
> === -------------------------------------------------------------------
> ===
> === Thread ID: 0x7f8945bdd700 LWP:30356 (pbx_thread           started at [ 4687] pbx.c ast_pbx_start())
> === ---> Waiting for Lock #0 (app_queue.c): MUTEX 1848 set_queue_variables q 0x3206420 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9760) [0x7f89adaa6760]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x9983) [0x7f89adaa6983]
> 	/usr/sbin/asterisk(ast_bridge_call_with_flags+0x112) [0x50ffd2]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2aad7) [0x7f89adac7ad7]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x2ce38) [0x7f89adac9e38]
> 	/usr/sbin/asterisk(pbx_exec+0xcc) [0x591e7c]
> 	/usr/sbin/asterisk() [0x585a8f]
> 	/usr/sbin/asterisk() [0x587b82]
> 	/usr/sbin/asterisk() [0x5896db]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 2430 (device_state_cb)
> === -------------------------------------------------------------------
> ===
> === Thread ID: 0x7f8947fff700 LWP:31161 (pbx_thread           started at [ 4687] pbx.c ast_pbx_start())
> === ---> Waiting for Lock #0 (astobj2_container.c): MUTEX 336 internal_ao2_traverse self 0x31b6270 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/sbin/asterisk() [0x45dc4d]
> 	/usr/sbin/asterisk(__ao2_find+0x2d) [0x45e35d]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x13a8e) [0x7f89adab0a8e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x162f5) [0x7f89adab32f5]
> 	/usr/sbin/asterisk(ast_cli_command_full+0x689) [0x4d9209]
> 	/usr/sbin/asterisk() [0x55e04d]
> 	/usr/sbin/asterisk() [0x54f5d8]
> 	/usr/sbin/asterisk() [0x55d15b]
> 	/usr/sbin/asterisk() [0x5f5eed]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 9255 (__queues_show)
> === -------------------------------------------------------------------
> ===
> === Thread ID: 0x7f8944bc0700 LWP:2185 (handle_tcptls_connection started at [  918] tcptls.c ast_tcptls_server_root())
> === ---> Waiting for Lock #0 (astobj2_container.c): MUTEX 608 internal_ao2_iterator_next iter->c 0x31b6270 (1)
> 	/usr/sbin/asterisk(__ast_pthread_mutex_lock+0x7d) [0x53cf3d]
> 	/usr/sbin/asterisk(__ao2_lock+0x8e) [0x45bb4e]
> 	/usr/sbin/asterisk() [0x45dc4d]
> 	/usr/sbin/asterisk(__ao2_find+0x2d) [0x45e35d]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x13a8e) [0x7f89adab0a8e]
> 	/usr/lib64/asterisk/modules/app_queue.so(+0x162f5) [0x7f89adab32f5]
> 	/usr/sbin/asterisk(ast_cli_command_full+0x689) [0x4d9209]
> 	/usr/sbin/asterisk() [0x55e04d]
> 	/usr/sbin/asterisk() [0x54f5d8]
> 	/usr/sbin/asterisk() [0x55d15b]
> 	/usr/sbin/asterisk() [0x5f5eed]
> 	/usr/sbin/asterisk() [0x605dea]
> 	/usr/lib64/libpthread.so.0(+0x7ea5) [0x7f8ae852dea5]
> 	/usr/lib64/libc.so.6(clone+0x6d) [0x7f8ae75cb9fd]
> === --- ---> Locked Here: app_queue.c line 9255 (__queues_show)
> Is there a patch or something to fix this?



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



More information about the asterisk-bugs mailing list