[asterisk-bugs] [JIRA] (ASTERISK-26738) Frequent segfaults since activation of DNS SRV, in pjsip_auth_clt_reinit_req at /pjsip/sip_auth_client.c, and pj_atomic_inc_and_get at pj/os_core_unix.c

Michael Maier (JIRA) noreply at issues.asterisk.org
Wed Feb 15 10:47:10 CST 2017


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

Michael Maier commented on ASTERISK-26738:
------------------------------------------

I applied provided patch in ASTERISK-26669. During a reload via FreePBX, I got the attached crash  backtrace-2017-02-14T21.29.39+0100.txt. This reload was necessary to switch back from SRV to normal DNS handling, because SRV handling is substantially broken even after this patch.

Why?

Given is the first DNS SRV lookup after retart of Asterisk, which provides hostname A and hostname B. Asterisk decides to use IP-address of hostname A. 
Some time / hours later, another SRV lookup is done. DNS provides hostname B and hostname A (same hostnames as before, but vice versa). Now, Asterisk decides to use IP-address of hostname B - but only for Register. Options and Invite use the old IP-address A - which doesn't work (they are rejected by ISP because of missing Register).

> Frequent segfaults since activation of DNS SRV, in pjsip_auth_clt_reinit_req at /pjsip/sip_auth_client.c, and pj_atomic_inc_and_get at pj/os_core_unix.c
> --------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ASTERISK-26738
>                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-26738
>             Project: Asterisk
>          Issue Type: Bug
>      Security Level: None
>          Components: Resources/res_pjsip
>    Affects Versions: 13.13.1
>         Environment: Centos 6 64bit
> FreePBX 13.0.190.7
> IPv4 and IPv6
> dual core processor
>            Reporter: Michael Maier
>            Assignee: Richard Mudgett
>            Severity: Critical
>         Attachments: backtrace-2017-01-20T21.21.25.txt, backtrace-2017-01-20T23.21.00+0100.txt, backtrace-2017-01-21T05.19.00+0100.txt, backtrace-2017-01-21T12.43.36+0100.txt, backtrace-2017-02-14T21.29.39+0100.txt, debug-2017-01-21T12.43.36+0100.txt
>
>
> After switching to DNS SRV w/ 5 parallel trunks I'm getting frequent segfaults like the attached one. Backtrace is built on base of patched Schmooze RPM source package:
> - Patch to get libasteriskpj.so.2 symbols
> - Patch from ASTERISK-26675 (segfault has been seen already w/o this patch - but it doesn't obviously fix this problem)
> Parallel running tcpdump shows, that REGISTER is sent at the time of the crash.
> In detail:
> - The DNS SRV entry has two hostnames (see ASTERISK-26735). All the time before the crash, ipaddress 217.0.23.108 is used for REGISTER.
> - At the moment of the crash, 2(!!) REGISTERS are sent nearly at the same time (0.01s difference) for the same trunk! The first to 217.0.23.140(!), the second to the usual 217.0.23.108. The answer from 217.0.23.108 comes first (200 ok), the answer from 217.0.23.140 comes 0.09s later and is 401 unauthorized. That's the end. Now the crash appears.



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



More information about the asterisk-bugs mailing list