[asterisk-dev] topic subscribers not getting removed from topic on channel cleanup

Mohit Dhiman mohitdhiman736 at gmail.com
Mon Dec 17 02:24:03 CST 2018


Hello, this question relates to issue ASTERISK-28197
<https://issues.asterisk.org/jira/browse/ASTERISK-28197>

In case of Bridge application when bridge_exec from features.c is invoked
it calls the ast_channel_unref(current_dest_chan) to remove the channel
reference if channel is not in the Bridge, which gives the following
function call stack.

#0 topic_remove_subscription (topic=0x7fbf2c008290, sub=0x36095a0) at
stasis.c:711
#1 0x00000000005c8a22 in stasis_forward_cancel (forward=0x7fbf2c009fa8) at
stasis.c:925
#2 0x00000000004cd126 in ast_channel_internal_cleanup (chan=0x7fbf2c0243d0)
at channel_internal_api.c:1553
#3 0x00000000004af818 in ast_channel_destructor (obj=0x7fbf2c0243d0) at
channel.c:2363
#4 0x000000000045b94b in internal_ao2_ref (user_data=0x7fbf2c0243d0,
delta=-1, file=0x61cb0b “astobj2.c”, line=518, func=0x61cd21 <_
*FUNCTION* *.8693>
"* _ao2_ref")
at astobj2.c:451
#5 0x000000000045bc2e in __ao2_ref (user_data=0x7fbf2c0243d0, delta=-1) at
astobj2.c:518
#6 0x000000000050c26a in bridge_exec (chan=0x7fbf2c00a4d0,
data=0x7fbfb3ffc460 “SIP/201-00000000”) at features.c:1129

finally the call to stasis_forward_cancel causes the removal of 4
subscribers from the non-pbx channel’s topic and one of those 4 subscribers
carries the callback endpoint_cache_clear which is needed to remove
channel_ids from struct ast_endpoint.


I tried to stop the removal of subscribers from the non-pbx channel by
adding a flag in ast_channel which stopped the channel_ids count from
increasing forever but now the subscribers are not getting removed from the
channel.

can anyone suggest how to solve this so that subscribers with callback
endpoint_cache_clear
don't get removed while bridging but also get removed while channel cleanup
happens.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20181217/f3e3d671/attachment.html>


More information about the asterisk-dev mailing list