[asterisk-dev] [Code Review] 2426: IAX2 defer_full_frames fail to get sent
Matt Jordan
reviewboard at asterisk.org
Thu Apr 11 16:08:04 CDT 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2426/#review8245
-----------------------------------------------------------
Ship it!
Ship It!
- Matt Jordan
On April 4, 2013, 7:23 a.m., Alec Davis wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviewboard.asterisk.org/r/2426/
> -----------------------------------------------------------
>
> (Updated April 4, 2013, 7:23 a.m.)
>
>
> Review request for Asterisk Developers.
>
>
> Bugs: ASTERISK-18827
> https://issues.asterisk.org/jira/browse/ASTERISK-18827
>
>
> Repository: Asterisk
>
>
> Description
> -------
>
> On a slower machine when a full_frame with the same callno is already being processed by another thread the frame is queued onto the other thread.
> However, nothing indicates to the other thread that it now has a frame to process.
>
> On the bug report, I have debug messages in the patch.
> In theory, the thread that is already processing the callno should pickup the deferred frames, but it doesn't.
>
> What was also revealed in ASTERISK-18827 using iax_18827.diff2.txt, is that the deferred frames queue increases each time a POKE/PONG is initiated.
> At some stage this will exhaust memory.
> Refer to the line below
> + ast_log(LOG_WARNING, "ALEC[%d] unhandled frame on thread [%d]\n", from_here->threadnum, to_here->threadnum);
>
>
> Diffs
> -----
>
> trunk/channels/chan_iax2.c 376441
>
> Diff: https://reviewboard.asterisk.org/r/2426/diff/
>
>
> Testing
> -------
>
> Before patch:
>
> astrid-test*CLI> iax2 show threads
> IAX2 Thread Information
> Idle Threads:
> Thread 2: state=0, update=5, actions=4, func=''
> Thread 3: state=0, update=4, actions=2, func=''
> Thread 4: state=0, update=10, actions=2, func=''
> Thread 5: state=0, update=3, actions=4, func=''
> Thread 6: state=0, update=8, actions=2, func=''
> Thread 7: state=0, update=2, actions=3, func=''
> Thread 8: state=0, update=1, actions=3, func=''
> Thread 9: state=0, update=0, actions=3, func=''
> Thread 10: state=0, update=6, actions=1, func=''
> Active Threads:
> Thread P1: state=1, update=1365045454, actions=0, func='socket_process'
> Dynamic Threads:
> 10 of 10 threads accounted for with 0 dynamic threads
>
> and iax2 show peers reports link is UNREACHABLE
>
>
> After patch:
> iax2 show threads has all idle.
>
> iax2 show peers (immediately after 'module load chan_iax2.so')
> Name/Username Host Mask Port Status Description
> astrid2/astrid2 192.168.xxx.yyy (S) 255.255.255.255 4569 (T) OK (1002 ms)
> 1 iax2 peers [1 online, 0 offline, 0 unmonitored]
>
>
> Thanks,
>
> Alec Davis
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-dev/attachments/20130411/5251a29e/attachment-0001.htm>
More information about the asterisk-dev
mailing list