[asterisk-bugs] [JIRA] (ASTERISK-29340) Stasis taskprocessor congestion after upgrading

Jan Blom (JIRA) noreply at issues.asterisk.org
Wed Mar 10 11:24:16 CST 2021


Jan Blom created ASTERISK-29340:
-----------------------------------

             Summary: Stasis taskprocessor congestion after upgrading
                 Key: ASTERISK-29340
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-29340
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Core/Stasis, pjproject/pjsip
    Affects Versions: 18.2.2
         Environment: 8 core vm, lots of RAM,
CentOS Linux release 7.5, Asterisk 18.2.2
            Reporter: Jan Blom
            Severity: Major


After upgrading from Asterisk 16.6.1 to 18.2.2 I notice a difference in how tasks are processed by the taskprocessors. 

My setup is that the asterisk box receives inbound calls (using chan_pjsip) from a single endpoint (SIP proxy).

There is one taskprocessor {{stasis/p:endpoint:PJSIP/<endpoint name>}} that handles a magnitude more messages than any other taskprocessor and the max depth is well above the high watermark. 

Using the older Asterisk 16.6.1 and identical configuration, the same taskprocessor receives no messages. 

This is the taksprocessor in question, after a testrun with 4170 calls at a rate of 100 calls per second.
bq.stasis/p:endpoint:PJSIP/proxy-00000019                                    1579171          0       1597        450        500

I have attached the complete list of taskprocessors (core show taskprocessors) after a testrun. For both Asterisk versions.

The dialplan is quite simple, only answering, playing a prompt and hangup. It also involves a few ODBC database calls. However, changing the dialplan to just answer, wait a few seconds and hangup will result in the same behavior,. Even though the number of messages processed by the taskprocessor will decrease a bit, it will still be a huge number. 

I am not entirely sure this is a problem. Calls seem to be handles properly and audio is fine. However, it is a big change in behavior compared with Asterisk 16 and a potential bottleneck if a single task is going to process a huge amount of messages. Except from this taskprocessor, all other message handling is well distributed over the various taskprocessors. 

Another annoyance is that the log gets filled with these warnings:
bq.taskprocessor.c:1160 taskprocessor_push: The 'stasis/p:endpoint:PJSIP/proxy-00000019' task processor queue reached 500 scheduled tasks again.

Most bells and whistles are disabled, no ARI, AMI, AGI. SIP UDP only.
The list of loaded modules in Asterisk 18.2.2 is attached.



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



More information about the asterisk-bugs mailing list