[asterisk-dev] [Code Review]: Pickup can leave orphan channels in race condition
irroot
reviewboard at asterisk.org
Thu Jul 21 02:54:46 CDT 2011
> On July 20, 2011, 11:23 a.m., rmudgett wrote:
> > I don't understand the scenario that causes the problem.
> > Has someone else answered the call from the queue?
> > Has the pickup attempt failed?
>
> irroot wrote:
> app_queue places a call to perhaps more than 1 interface the caller hangs up in a race with a pickup of
> the called interface from a 3 party [as best i can tell].
>
> the result is a channel left orphaned that cannot be removed with no thread running on it this is happening frequently enough over various sites.
>
> when the "pickup" is done the channel should be bridged or about to be bridged running autoservice on it till this happens is probably the correct thing to do WRT DTMF and the like and will allow the hangup frame to flush it.
>
>
>
> rmudgett wrote:
> I think waiting for a bridge that may never happen is not the way to go here. It sounds more like a problem in app_queue.c:wait_for_answer() not cleaning up correctly in a race between a queue member answering the call and the caller hanging up.
i have only witnessed it in app_queue i suspect it may happen elsewhere ill look into app_queue further
- irroot
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/1323/#review3897
-----------------------------------------------------------
On July 20, 2011, 8:28 a.m., irroot wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/1323/
> -----------------------------------------------------------
>
> (Updated July 20, 2011, 8:28 a.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Summary
> -------
>
> seems like app_queue [and others likely] can leave a orphaned channel with no bridge and no thread running on it.
>
> this is "ungood" here is a small patch that starts auto service waits for bridging and turns it off allowing the
> hangup frame to get through and shut down the channel ...
>
>
> Diffs
> -----
>
> /team/irroot/distrotech-customers-1.8/main/features.c 328930
>
> Diff: https://reviewboard.asterisk.org/r/1323/diff
>
>
> Testing
> -------
>
>
> Thanks,
>
> irroot
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20110721/c2d3593b/attachment.htm>
More information about the asterisk-dev
mailing list