[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