[asterisk-bugs] [JIRA] (ASTERISK-25844) Ghost channels in "core show channels" output

Richard Mudgett (JIRA) noreply at issues.asterisk.org
Mon Mar 14 17:35:56 CDT 2016


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

Richard Mudgett commented on ASTERISK-25844:
--------------------------------------------

I've seen a similar situation that had a temporary ghost channel that I'll couch using your configuration:
# Alice calls the 50 exten
# Bob answers
# When the local channels between Alice and Bob optimize out the Local/52 at default;1 channel still shows up in the "core show channels" output.
# If the call is now hung up, the "ghost" channel also goes away.

A ref leak of a stasis channel snapshot will cause the kind of permanent ghost channel you are seeing.

FYI: I do hope your {{member => Local/52 at default}} line in your actual {{queues.conf}} file specifies the state interface of Bob.
{{syntax: member => interface,\[,penalty]\[,membername]\[,state_interface]\[,ringinuse]}}

> Ghost channels in "core show channels" output
> ---------------------------------------------
>
>                 Key: ASTERISK-25844
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25844
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/Channels
>    Affects Versions: 13.7.2
>         Environment: Debian 8.3 amd64
>            Reporter: Etienne Lessard
>            Severity: Minor
>
> Given I have two 2 SIP users, Alice (SIP/alice) and Bob (SIP/bob)
> Given I have the following queues.conf:
> {noformat}
> [sales]
> strategy = ringall
> member => Local/52 at default
> [wait]
> stategy = ringall
> {noformat}
> Given I have the following extensions.conf
> {noformat}
> [default]
> exten = 50,1,NoOp()
> same  =   n,Queue(sales)
> same  =   n,Hangup()
> exten = 51,1,NoOp()
> same  =   n,Queue(wait)
> same  =   n,Hangup()
> exten = 52,1,NoOp()
> same  =   n,Dial(SIP/bob)
> same  =   n,Hangup()
> exten = 53,1,NoOp()
> same  =   n,Bridge(SIP/alice-00000000)
> same  =   n,Hangup()
> {noformat}
> When Alice calls the 50 extension
> And Bob answers
> Then there is 1 temporary ghost channel "Local/52 at default-00000000;1" that can be seen in the "core show channels concise" output
> When Alice's channel is redirected to the 51 at default extension via the AMI "Redirect" command
> When a "channel originate SIP/bob extension 53 at default" is done
> And Bob answers and is bridged with Alice's channel
> And Alice's channel is hanged up via the AMI "Hangup" command
> Then there are 2 permanent ghost channels in the output of core show channels:
> {noformat}
> el*CLI> core show channels
> Channel              Location             State   Application(Data)             
> Local/52 at default-000 50 at default:1         Up      AppQueue((Outgoing Line))     
> Surrogate/SIP/69jqad 51 at default:1         Down    (None)                        
> 0 active channels
> 0 active calls
> 4 calls processed
> {noformat}
> So this scenario is a bit complex, I've tried finding a simpler one but was not able to. With this scenario, I've been able to produce ghost channels systematically. This impact us because we have an external application (a switchboard application) that use Asterisk in this kind of way.
> The only impact I have found is that the output of "core show channels" becomes less and less useful (for administration purpose) as ghost channels adds up.
> When we try to hangup one of these ghost channels via "channel request hangup", it says "<channel> is not a known channel". It seems like these channels only exists in the stasis cache and not in the ao2_container of channels.



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



More information about the asterisk-bugs mailing list