[asterisk-bugs] [JIRA] (ASTERISK-27983) pjsip_options: rework may have left concurrency issue

Gregory Massel (JIRA) noreply at issues.asterisk.org
Thu Jul 26 02:56:56 CDT 2018


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

Gregory Massel commented on ASTERISK-27983:
-------------------------------------------

Unfortunately it's not possible to share the passwords (as they're actual passwords for a live server on the internet). 
Based on your feedback, however, I added the following to my pjsip.conf:
unidentified_request_count = 5000
unidentified_request_period = 1

After that, the previous error has stopped and I'm able to sustain high volumes (I only tested up to 2000 registrations per second, but it seemed like I could probably go higher).

Intermittently (every 5 to 10 seconds), however, I am now getting:
res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '"xxx" <sip:xxx at xxx>' failed for 'x.x.x.x:5060' (callid: 41453-12472 at x.x.x.x) - Failed to authenticate
However, given how infrequent this is relative to the test volume and that it represents less than a 0.03% failure rate, it seems statistically irrelevant.

Thank you for your assistance and apologies for my incorrect conclusion that this was a bug; it was obviously a config issue (unidentified_request_count has to be set extremely high when testing from a single IP).
Once again, thank you for the excellent work in terms of improving the PJSIP performance (ASTERISK-26806); these results prove that the performance is, as of Asterisk 13.22.0, orders of magnitude faster and more scalable than seen before.

> pjsip_options: rework may have left concurrency issue
> -----------------------------------------------------
>
>                 Key: ASTERISK-27983
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-27983
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip
>    Affects Versions: 13.22.0
>         Environment: Ubuntu, Asterisk 13.22.0, pjsip, thousands of endpoints
>            Reporter: Gregory Massel
>            Assignee: Gregory Massel
>            Severity: Minor
>              Labels: pjsip
>
> Following the excellent work done in terms of ASTERISK-26806, I have been doing some performance testing on Asterisk 13.22.0 with res_pjsip.
> If I get sipp to run more than 200 registrations per second, it starts logging:
> res_pjsip/pjsip_distributor.c: Request 'REGISTER' from '"[redacted]" <sip:[redacted]>' failed for '[redacted]:5060' (callid: [redacted]) - No matching endpoint found after X tries in 0.000 ms
> Where X is between 5 and 9 and >99% of the log entries show 0.000 ms.
> At first I thought the time was logging incorrectly, but there are a few up to 2.731ms.
> It is odd, however, that the endpoint cannot be found after numerous tries in such a short period of time (almost always less than 0.001ms). All the endpoints are valid and, if I reduce the registration rate to 100 reg per second, no such errors log.
> Throughout this, CPU usage remains extremely modest across all cores.
> This leads me to believe that there may be some sort of locking or contention across the endpoints/aors/contacts tables that is causing the registration performance to be restricted in spite of the hardware.
> It seems that, despite significant gains in performance since ASTERISK-26806 was resolved, pjsip is still performing slower than chan_sip in terms of registrations (despite chan_sip using only a single core and res_pjsip threading across 8 cores).



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



More information about the asterisk-bugs mailing list