[asterisk-dev] [Code Review] 2426: IAX2 defer_full_frames fail to get sent
Alec Davis
reviewboard at asterisk.org
Wed Apr 3 22:33:20 CDT 2013
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviewboard.asterisk.org/r/2426/
-----------------------------------------------------------
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 in another thread the frame is queue 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 is 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/20130404/713950a2/attachment.htm>
More information about the asterisk-dev
mailing list