[asterisk-bugs] [JIRA] (ASTERISK-28625) Playback of local files impacted by large media cache

Kevin Reeves (JIRA) noreply at issues.asterisk.org
Fri Nov 22 11:47:31 CST 2019


    [ https://issues.asterisk.org/jira/browse/ASTERISK-28625?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=248855#comment-248855 ] 

Kevin Reeves commented on ASTERISK-28625:
-----------------------------------------

I agree.  My patch doesn't really fix the underlying issue - it simply removes local file playback from messing with the media cache at all.  If my assumption is right that non-remote files would ever be in the media cache, then there's no need to ever search there anyway.

I'm interested in the potential astdb contention issues with add/delete operations.  If a dialplan has a lot of Read/Playback requests while using media cache then under heavy load you could see a lot of requests to search the media cache at the same time.  I guess it's possible that could introduce a moment in the thread where it gets blocked while astdb is updated.  And you wouldn't really experience that issue until you had the right blend of Read/Playback file operations along with a hefty media cache.

> Playback of local files impacted by large media cache
> -----------------------------------------------------
>
>                 Key: ASTERISK-28625
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-28625
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Core/Streams
>    Affects Versions: 16.6.1
>         Environment: CentOS Linux release 7.6.1810
>            Reporter: Kevin Reeves
>            Assignee: Unassigned
>              Labels: patch
>         Attachments: ASTERISK-28625.patch
>
>
> Playback of local files is impacted by media cache.  As the cache grows, performance of common Read and Playback (and presumably other) operations for local files is impacted.
> For example, Playback command of a local file like this:
> exten => s,n,Playback(thankyou)
> Even though it's playing a local file, those operations are searching the media cache. As the cache size grows, the performance of that type of call is impacted.  In fact, we've seen a multi-second delay from the time the Playback command is executed to when the caller hears the audio.
> The delay grows significantly over time as the cache grows bigger.  With thousands of files in the media cache while the server is under heavy load, the delay has been upwards of 15-30 seconds.  Without files in the media cache there is zero delay.
> Here's a debug output snippet that shows the issue.  The Read application is playing a local file named 'pb/ac-enter-pin'.  Notice that media_cache.c line 194 fails to locate the media.
>     -- Executing [s at nx-dial-session:20] Read("SIP/vitel-inbound2-00000002", "__DS_PIN,/var/lib/asterisk/sounds/pb/ac-enter-pin") in new stack
> [2019-11-20 15:22:06] DEBUG[30329][C-00000003]: media_cache.c:194 ast_media_cache_retrieve: Failed to obtain media at '/var/lib/asterisk/sounds/pb/ac-enter-pin'
> [2019-11-20 15:22:06] DEBUG[30329][C-00000003]: media_cache.c:194 ast_media_cache_retrieve: Failed to obtain media at '/var/lib/asterisk/sounds/pb/ac-enter-pin'
> This section of the code should not be used in cases where the file is a local file.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list