[asterisk-bugs] [JIRA] (ASTERISK-29821) Deadlock in bridge_channel_internal_join() on local channels.
Krzysztof Trempala (JIRA)
noreply at issues.asterisk.org
Mon Dec 27 03:20:44 CST 2021
Krzysztof Trempala created ASTERISK-29821:
---------------------------------------------
Summary: Deadlock in bridge_channel_internal_join() on local channels.
Key: ASTERISK-29821
URL: https://issues.asterisk.org/jira/browse/ASTERISK-29821
Project: Asterisk
Issue Type: Bug
Security Level: None
Components: Bridges/bridge_builtin_features
Affects Versions: 18.9.0
Environment: Ubuntu 20.04
Reporter: Krzysztof Trempala
We've had a couple instances of a deadlocks. Deadlocks in function bridge_channel_internal_join() on local channels.
{noformat}
[Thread_1] [Thread_2]
| |
bridge_channel_internal_join(bridge_channel1) |
.. |
ast_bridge_lock(bridge_channel1->bridge1); |
bridge_channel1->chan <= "local_chan;1" |
ast_channel_lock(bridge_channel1->chan); |
peer = ast_local_get_peer(bridge_channel1->chan); |
peer <= "local_chan;2" |
| |
| bridge_channel_internal_join(bridge_channel2)
| ..
| ast_bridge_lock(bridge_channe2->bridge2);
| bridge_channel2->chan <= "local_chan;2"
| ast_channel_lock(bridge_channel2->chan);
| peer = ast_local_get_peer(bridge_channel2->chan);
| peer <= "chan_local;1"
| ..
| ast_channel_lock(peer); <== wait for lock on "chan_local;1"
|
|
ast_channel_lock(peer); <== wait for lock "local_chan;2" <== DEADLOCK
{noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list