[asterisk-bugs] [JIRA] (ASTERISK-29775) CPU spike

Dan Cropp (JIRA) noreply at issues.asterisk.org
Wed Nov 24 11:40:49 CST 2021


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

Dan Cropp updated ASTERISK-29775:
---------------------------------

    Attachment: messages
                confbridge.conf
                debug_log

The confbridge.conf is a probably not too important to this.  As I mentioned, we're using AMI to control most of the call flow and confbridges.  If a setting doesn't match what is required, we change the variable on the fly through AMI actions on the channel.

In the debug_log, at 11:24:30:434, we initiate the EXEC RECORD and this is when things spike.  
debug_log file shows "res_timing_timerfd.c: Expected to acknowledge 1 ticks but got 2 instead" happening regularly.
Even after the record completes dues to silence, the CPU remains high (ticks issue)..

I hangup the local channel that performed the recording at 11:24:48.712.
At this point, there are still the two ends of the other local channel.  Each end is in a different ConfBridge.
The ticks issue remains.

At 11:25:05.781, I perform the ConfBridgeKick to remove one end of the local channel from one of the ConfBridges.  At this point things are running much nicer.

I left a channel in the ConfBridge A, so it is continuing to process this portion even at the end of these logs.
The ConfBridge B is ended because there are no longer any channels remaining in it.

> CPU spike
> ---------
>
>                 Key: ASTERISK-29775
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29775
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Applications/app_confbridge, Channels/chan_local
>    Affects Versions: 16.22.0, 18.8.0
>         Environment: Ubuntu 18 and also Ubuntu 20
>            Reporter: Dan Cropp
>            Assignee: Dan Cropp
>              Labels: confbridge
>         Attachments: confbridge.conf, debug_log, messages
>
>
> We use AMI to do the following.  I don't think it's AMI causing the issue, but mentioning it.
> Create 2 ConfBridges (A and B)
> Create a Local channel 1234.  
> Add one end of the local channel 1234;1 to ConfBridge A.
> Add the other end of local channel 1234;2 to ConfBridge B.
> Create another Local channel 5678.
> Add one end of local channel 5678;2 to ConfBridge B.
> Now on local channel 5678;1, we execute a Record.
> The CPU spikes at this point.  I suspect the code is in some loop with processing the multiple calls with the ConfBridge.
> Even when the Record completes, the CPU is still running 95+%.  The top PIDs are all asterisk running CPU% 95-96%, others four are 10-20%.
> Basically, the box becomes so bogged down it runs into problems and can't process other things.
> Even if I remove local channel 5678;2 from ConfBridge B, the CPU stays running at peak.
> Once either ConfBridge has the calls kicked or either end of the local channel 1234 is removed from either ConfBridge, the CPU issue is resolved.
> While local channels like this doesn't make sense.  We originally found this because we had PJSIP calls in different ConfBridges but needed the ConfBridges to be connected with a local channel.  All was fine until a customer started requiring us to have separate recording for each participant in one of the bridge.  That's when we started adding local channels as each participant joined and began recording.
> By eliminating the PJSIP calls in the sample, it eliminates areas to look at.



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



More information about the asterisk-bugs mailing list