[asterisk-bugs] [JIRA] (ASTERISK-25736) pbx core: Deadlock during a reload
Kevin Harwell (JIRA)
noreply at issues.asterisk.org
Mon Feb 1 13:00:33 CST 2016
[ https://issues.asterisk.org/jira/browse/ASTERISK-25736?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Kevin Harwell updated ASTERISK-25736:
-------------------------------------
Attachment: core-show-locks-last.txt
backtrace-threads-last.txt
> pbx core: Deadlock during a reload
> ----------------------------------
>
> Key: ASTERISK-25736
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-25736
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: PBX/General
> Affects Versions: 13.7.0
> Reporter: Kevin Harwell
> Severity: Minor
> Attachments: backtrace-threads-last.txt, core-show-locks-last.txt
>
>
> The following thread (Thread ID: 0x7f48d3b03700) locks the hints container and then waits for the contexts lock to be released:
> {noformat}
> Lock #3 (pbx.c): MUTEX 3841 ast_add_hint hints 0x1336a60 (1)
> main/backtrace.c:59 __ast_bt_get_addresses() (0x46d368+1D)
> main/lock.c:258 __ast_pthread_mutex_lock() (0x551105+C9)
> main/astobj2.c:200 __ao2_lock() (0x460fa7+F4)
> main/pbx.c:3844 ast_add_hint()
> main/pbx.c:7230 ast_add_extension2_lockopt()
> main/pbx.c:7006 ast_add_extension2() (0x59df10+67)
> pbx/pbx_config.c:1841 pbx_load_config()
> pbx/pbx_config.c:2045 pbx_load_module()
> pbx/pbx_config.c:2097 reload()
> main/loader.c:962 ast_module_reload() (0x54e546+43F)
> main/cli.c:344 handle_core_reload()
> main/cli.c:2717 ast_cli_command_full() (0x4e3404+277)
> main/cli.c:2741 ast_cli_command_multiple_full() (0x4e3797+C1)
> main/asterisk.c:1435 netconsole()
> main/utils.c:1232 dummy_start()
> nptl/pthread_create.c:312 start_thread()
> libc.so.6 clone() (0x7f48d47f8410+6D)
> === ---> Waiting for Lock #4 (pbx.c): MUTEX 8183 ast_rdlock_contexts &conlock 0x917100 (1)
> main/backtrace.c:59 __ast_bt_get_addresses() (0x46d368+1D)
> main/lock.c:258 __ast_pthread_mutex_lock() (0x551105+C9)
> main/pbx.c:8184 ast_rdlock_contexts() (0x5a19e2+23)
> main/pbx.c:2782 pbx_extension_helper()
> main/pbx.c:3998 ast_exists_extension() (0x59426f+61)
> res/res_pjsip_exten_state.c:355 new_subscribe()
> res/res_pjsip_pubsub.c:978 build_resource_tree()
> res/res_pjsip_pubsub.c:2689 pubsub_on_rx_subscribe_request()
> res/res_pjsip_pubsub.c:3188 pubsub_on_rx_request()
> :0 pjsip_endpt_process_rx_data() (0x7f48d2196ae9+1E9)
> res_pjsip/pjsip_distributor.c:461 distribute()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:1320 execute_tasks()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:351 threadpool_execute()
> main/threadpool.c:1103 worker_active()
> main/threadpool.c:1024 worker_start()
> main/utils.c:1232 dummy_start()
> nptl/pthread_create.c:312 start_thread()
> libc.so.6 clone() (0x7f48d47f8410+6D)
> {noformat}
> However the following thread (Thread ID: 0x7f48199bb700) has locked the contexts lock and it waiting for the hints container:
> {noformat}
> Lock #0 (pbx.c): MUTEX 8183 ast_rdlock_contexts &conlock 0x917100 (1)
> main/backtrace.c:59 __ast_bt_get_addresses() (0x46d368+1D)
> main/lock.c:258 __ast_pthread_mutex_lock() (0x551105+C9)
> main/pbx.c:8184 ast_rdlock_contexts() (0x5a19e2+23)
> main/pbx.c:4636 find_context_locked()
> main/pbx.c:6699 ast_add_extension() (0x59d264+31)
> main/pbx.c:3586 extension_state_add_destroy()
> main/pbx.c:3643 ast_extension_state_add_destroy_extended() (0x593001+41)
> res/res_pjsip_exten_state.c:378 subscription_established()
> res/res_pjsip_pubsub.c:2582 generate_initial_notify()
> res/res_pjsip_pubsub.c:2606 initial_notify_task()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:1320 execute_tasks()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:351 threadpool_execute()
> main/threadpool.c:1103 worker_active()
> main/threadpool.c:1024 worker_start()
> main/utils.c:1232 dummy_start()
> nptl/pthread_create.c:312 start_thread()
> libc.so.6 clone() (0x7f48d47f8410+6D)
> === ---> Waiting for Lock #1 (pbx.c): MUTEX 3841 ast_add_hint hints 0x1336a60 (1)
> main/backtrace.c:59 __ast_bt_get_addresses() (0x46d368+1D)
> main/lock.c:258 __ast_pthread_mutex_lock() (0x551105+C9)
> main/astobj2.c:200 __ao2_lock() (0x460fa7+F4)
> main/pbx.c:3686 ast_extension_state_del() (0x593119+CD)
> res/res_pjsip_exten_state.c:347 subscription_shutdown()
> res/res_pjsip_pubsub.c:1179 shutdown_subscriptions()
> res/res_pjsip_pubsub.c:3305 pubsub_on_evsub_state()
> evsub.c:0 set_state()
> :0 pjsip_evsub_send_request() (0x7f48d23dd7d3+13F)
> res/res_pjsip_pubsub.c:1696 sip_subscription_send_request()
> res/res_pjsip_pubsub.c:2147 send_notify()
> res/res_pjsip_pubsub.c:3219 serialized_pubsub_on_server_timeout()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:1320 execute_tasks()
> main/taskprocessor.c:852 ast_taskprocessor_execute() (0x60f193+10D)
> main/threadpool.c:351 threadpool_execute()
> main/threadpool.c:1103 worker_active()
> main/threadpool.c:1024 worker_start()
> main/utils.c:1232 dummy_start()
> nptl/pthread_create.c:312 start_thread()
> libc.so.6 clone() (0x7f48d47f8410+6D)
> {noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list