[test-results] [Bamboo] Asterisk > 1.8 - Linux - x86_64 > #373 was SUCCESSFUL (with 59 tests). Change made by Russell Bryant.
Bamboo
bamboo at asterisk.org
Wed Nov 24 12:17:15 CST 2010
-------------- next part --------------
-----------------------------------------------------------------------
Asterisk > 1.8 - Linux - x86_64 > #373 was successful.
-----------------------------------------------------------------------
Code has been updated by Russell Bryant.
59 tests in total.
http://bamboo.asterisk.org/browse/AST-18-373/
--------------
Code Changes
--------------
Russell Bryant (296002):
>Merged revisions 296001 via svnmerge from
>https://origsvn.digium.com/svn/asterisk/branches/1.6.2
>
>................
> r296001 | russell | 2010-11-24 11:03:16 -0600 (Wed, 24 Nov 2010) | 45 lines
>
> Merged revisions 296000 via svnmerge from
> https://origsvn.digium.com/svn/asterisk/branches/1.4
>
> ........
> r296000 | russell | 2010-11-24 10:48:39 -0600 (Wed, 24 Nov 2010) | 38 lines
>
> Handle failures building translation paths more effectively.
>
> The problem scenario occurred on a heavily loaded system that was using the
> codec_dahdi module and exceeded the hardware transcoding capacity. The failure
> mode at that point was not good. The report came in to us as an Asterisk
> lock-up. The "core show locks" shows a ton of threads locked up (but no
> obvious deadlock). Upon deeper investigation, when the system is in this
> state, the CPU was maxed out. The CPU was being consumed by the Asterisk
> logger spewing messages on every audio frame for calls set up after transcoder
> capacity was reached.
>
> The purpose of this patch is to make Asterisk handle failures to create a
> translation path in a more graceful manner. If we can't translate, then the
> call just needs to be dropped, as it's not going to work. These are the
> changes:
>
> 1) In set_format() of channel.c (which is called by set_read_format() and
> set_write_format()), it was ignoring if ast_translator_build_path() failed and
> returned NULL. It now pays attention to that case and returns a result
> reflecting failure. With this change in place, the bridging code will
> immediately detect a failure and end the bridge instead of proceeding to try to
> bridge frames that can't be translated and making channel drivers freak out by
> sending them frames in a format they weren't expecting.
>
> 2) In ast_indicate_data() of channel.c, failure of ast_playtones_start() was
> ignored. It is now reflected in the return value of the function. This didn't
> turn out to have any affect on the bug, but seemed like a good change to leave
> in.
>
> 3) In app_dial(), when only sending a call to a single endpoint, it will
> attempt to do some bridging of its own of early audio. It uses
> make_compatible() when it's going to do this. However, it ignored failure from
> make compatible. So, even with the fix from #1, if there was early audio going
> through app_dial, there would still be a period of invalid frames passing
> through. After detecting failure here, Dial() exits.
>
> ABE-2658
> ........
>................
>
--
This message is automatically generated by Atlassian Bamboo
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.digium.com/pipermail/test-results/attachments/20101124/1f4dec2f/attachment.htm
More information about the Test-results
mailing list