[asterisk-bugs] [JIRA] (ASTERISK-27985) chan_pjsip will not respond to INVITES when cel_aggregation_topic queue length is > 0
Richard Mudgett (JIRA)
noreply at issues.asterisk.org
Wed Jul 25 07:12:54 CDT 2018
[ https://issues.asterisk.org/jira/browse/ASTERISK-27985?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=244247#comment-244247 ]
Richard Mudgett commented on ASTERISK-27985:
--------------------------------------------
This is not a bug. It is intentional that chan_pjsip stop accepting new work such as incoming calls when *any* task processor queue depth goes over the high water trigger limit. This condition remains in effect until all queues go below the low water limit. Because chan_pjsip is multi-threaded, it is the *only* defense mechanism that chan_pjsip has against an overloaded system. If chan_pjsip does not do this then incoming requests for new calls could pile up work in the queues until the system ran out of memory.
In this test situation you have created dialplan that bypasses the feedback mechanism and floods the system with CEL events. If you leave it running you will eventually run out of memory.
> chan_pjsip will not respond to INVITES when cel_aggregation_topic queue length is > 0
> -------------------------------------------------------------------------------------
>
> Key: ASTERISK-27985
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-27985
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: CEL/cel_odbc
> Affects Versions: 15.4.1, 13.22.0
> Environment: FreePBX 14, SNG7
> Reporter: xrobau
> Labels: pjsip
> Attachments: pjsip-ignored.txt
>
>
> We've had sporadic reports of AGIs causing audio glitches on heavy systems (which we believe is related to ASTERISK-26257 but is NOT limited to confbridge, MOH and Playback/Background is also affected).
> {code}
> exten => 998,1,Answer
> same => n,Dial(Local/999 at from-internal-custom/n,300,gm(default))
> same => n,Playback(beep)
> same => n,Goto(1)
> exten => 999,1,Set(COUNT=0)
> same => n(loop),GotoIf($[ ${COUNT} > 1000 ]?toomany)
> same => n,Gosub(testtrigger)
> same => n,Set(COUNT=$[ ${COUNT} + 1 ])
> same => n,Goto(loop)
> same => n(toomany),Hangup
> same => n(testtrigger),Dial(SIP/8675309 at 127.0.0.1:5160,1,g)
> same => n,Return
> {code}
> The above dialplan simulates a call entering the 'from-pstn' context of FreePBX, which then does - after the standard dialplan - a Hangup.
> This causes Asterisk to create about 20-30 calls per second (but does not trigger the audio issue, unfortunately). It does however trigger a new issue where PJSIP channel INVITES are ignored until the cel_aggregation_topic queue is empty:
> {code}
> Processor Processed In Queue Max Depth Low water High water
> ... skipped lines ...
> subm:cdr_engine-00000003 5780891 0 2347 4500 5000
> subm:cel_aggregation_topic-00000006 4968215 786689 2961396 2700 3000
> subm:endpoint_topic_all-cached-00000008 794 0 13 450 500
> subm:endpoint_topic_all-cached-0000005a 778 0 13 450 500
> subm:manager_topic-00000007 5962603 0 344 2700 3000
> {code}
> While the queue is being processed, pjsip calls are ignored. chan_sip calls are answered and processed correctly, increasing the queue size.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list