[asterisk-bugs] [JIRA] (ASTERISK-28470) Mutex deadlock in audio_audiohook_write_list
Andre Heber (JIRA)
noreply at issues.asterisk.org
Thu Jul 4 05:14:47 CDT 2019
[ https://issues.asterisk.org/jira/browse/ASTERISK-28470?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Andre Heber updated ASTERISK-28470:
-----------------------------------
Attachment: stack_trace_2.png
stack_trace_1.png
mutex_2.png
mutex_1.png
info_threads.png
> Mutex deadlock in audio_audiohook_write_list
> --------------------------------------------
>
> Key: ASTERISK-28470
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-28470
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: General
> Affects Versions: 16.3.0
> Environment: CentOS 6.10
> Reporter: Andre Heber
> Assignee: Andre Heber
> Attachments: info_threads.png, mutex_1.png, mutex_2.png, stack_trace_1.png, stack_trace_2.png
>
>
> In main/audiohook.c in the function "audio_audiohook_write_list" is the following code:
> {code:java}
> ast_audiohook_lock(audiohook);
> if (audiohook->status != AST_AUDIOHOOK_STATUS_RUNNING) {
> AST_LIST_REMOVE_CURRENT(list);
> removed = 1;
> ast_audiohook_update_status(audiohook, AST_AUDIOHOOK_STATUS_DONE);
> ast_audiohook_unlock(audiohook);
> {code}
> But "ast_audiohook_update_status" also locks "audiohook" "if (audiohook->status != AST_AUDIOHOOK_STATUS_RUNNING)", which results in a frozen thread.
> This happens 3x in "audio_audiohook_write_list" and 1x in "dtmf_audiohook_write_list".
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list