[asterisk-bugs] [JIRA] (ASTERISK-22409) Local channels in a ConfBridge w/ jitterbuffer=yes leak ast_frame's after masquerade

Corey Farrell (JIRA) noreply at issues.asterisk.org
Tue Oct 29 17:29:02 CDT 2013


     [ https://issues.asterisk.org/jira/browse/ASTERISK-22409?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Corey Farrell updated ASTERISK-22409:
-------------------------------------

    Attachment: func_jitterbuffer-hook_event_cb.patch

Attached is a first attempt to fix these leaks.

One concern about ast_frfree(jbframe), what if jbframe == frame?  I'm not sure if it's possible here, and I have no idea if jbframe should be free'd in that case.  freeing jbframe seems to resolve the very large memory leak.

The ast_frfree of the non-static AST_FRAME_NULL resolves the leak caused by soft hangup.

I first tested with ast_debug(3, "leak frame\n"); in place of the ast_frfree's, the leak count matched between asterisk full log and valgrind.  Then I tested with debug and free, verified that the newly added ast_frfree's ran, and resolved the leaks without causing any valgrind memory access error's.  All testing was done on latest branches/11.

This patch does not resolve the poor audio quality caused by func_jitterbuffer.so, but not leaking is a good start.
                
> Local channels in a ConfBridge w/ jitterbuffer=yes leak ast_frame's after masquerade
> ------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-22409
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-22409
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_confbridge, Channels/chan_local, Core/Jitterbuffer, Core/ManagerInterface
>    Affects Versions: 11.6.0
>            Reporter: Corey Farrell
>         Attachments: ami-action.txt, channel-debug.patch, confbridge.conf, extensions.conf, full_log, func_jitterbuffer-hook_event_cb.patch, valgrind-leaks
>
>
> I use AMI to originate calls into MeetMe.  I've recently started testing with ConfBridge, but found a memory leak that prevents me from switching.  Using Asterisk 11.
> To replicate:
> * Use attached configuration - extensions.conf, confbridge.conf
> * Set dialplan global MYDEVICE as appropriate
> * Start asterisk in valgrind - MALLOC_DEBUG might work I haven't tried
> * Call the ConfBridge - don't make MYDEVICE unavailable
> * Using AMI send action Originate - see ami-action.txt
> * Ensure the destination call is answered - this causes Local to optimize away
> Once the Local channel is optimized away, ast_frame leaks are guaranteed:
> * The masquerade/optimize of Local to SIP results in a couple leaks every time.
> * AMI: Redirect and Hangup both result in a leak every time.
> * Unknown additional trigger sometimes causes huge number of leaked frames.  Leaks 200k in very short time.  Still trying to find a way to reliably reproduce this one.
> Changing the Originate channel to 'Local/s at test-out/n' seems to prevent the leaks.  Another strange note, ringing audio is clear but once the masquerade happens the audio quality is terrible.  Either preventing the optimize or turning off jitterbuffer seams to result in good quality audio.
> This issue might be related to [ASTERISK-21144].

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.asterisk.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the asterisk-bugs mailing list