In rare cases, Asterisk crashes after PJSIP outputs SSL 6 [SSL_ERROR_ZERO_RETURN]

Hello everyone.

I am using Asterisk 18.8.0.
Asterisk and SIP clients (Zoiper ZDK and Yealink SIP Phone) are connected via SIP over TLS.
In rare cases, Asterisk crashes after outputting a SSL 6 [SSL_ERROR_ZERO_RETURN] WARNING.
SSL_ERROR_ZERO_RETURN is often printed and I understand that this is not a definitive condition for crashes.

What can I do to avoid the crash?
I checked the changelog of Asterisk 18.17.1, but I couldn’t confirm that the crash can be avoided.
Please share your knowledge with me.
thank you for your help.

security.log

[2023-05-11 08:45:20] SECURITY[13452] res_security_log.c: SecurityEvent="ChallengeSent",EventTV="2023-05-11T08:45:20.624+0900",Severity="Informational",Service="PJSIP",EventVersion="1",AccountID="99000000070000000075",SessionID="4lRgEFENG75HLoccdlVihw..",LocalAddress="IPV4/TLS/10.x.y.z/5061",RemoteAddress="IPV4/TLS/118.a.b.c/57752",Challenge=""
[2023-05-11 08:45:30] SECURITY[13452] res_security_log.c: SecurityEvent="SuccessfulAuth",EventTV="2023-05-11T08:45:30.653+0900",Severity="Informational",Service="PJSIP",EventVersion="1",AccountID="99000000070000000075",SessionID="4lRgEFENG75HLoccdlVihw..",LocalAddress="IPV4/TLS/10.x.y.z/5061",RemoteAddress="IPV4/TLS/118.a.b.c/57752",UsingPassword="1"

Merge kernel messages and Asterisk message logs.

May 11 08:45:30 sip-node01 asterisk: WARNING[13403] pjproject:                            SSL 6 [SSL_ERROR_ZERO_RETURN] (Read) ret: 0 len: 65535
May 11 08:45:30 sip-node01 kernel: asterisk[28913]: segfault at 18 ip 00007f6868e46fa0 sp 00007f67efa78aa0 error 4 in libasteriskpj.so.2[7f6868d29000+175000]
May 11 08:45:30 sip-node01 kernel: Code: 66 2e 0f 1f 84 00 00 00 00 00 41 54 55 48 8d 6f 50 49 89 fc 53 48 8b 5f 58 48 39 dd 74 1e 66 90 66 2e 0f 1f 84 00 00 00 00 00 <48> 8b 7b 18 e8 a7 26 f1 ff 48 8b 5b 08 48 39 dd 75 ee 49 83 7c 24
May 11 08:45:30 sip-node01 systemd: asterisk.service: main process exited, code=killed, status=11/SEGV
May 11 08:45:30 sip-node01 systemd: Unit asterisk.service entered failed state.
May 11 08:45:30 sip-node01 systemd: asterisk.service failed.
May 11 08:45:40 sip-node01 systemd: asterisk.service holdoff time over, scheduling restart.
May 11 08:45:40 sip-node01 systemd: Stopped Asterisk PBX and telephony daemon.
May 11 08:45:40 sip-node01 systemd: Starting Asterisk PBX and telephony daemon...
May 11 08:45:40 sip-node01 systemd: Started Asterisk PBX and telephony daemon.
May 11 08:45:41 sip-node01 asterisk: Asterisk 18.8.0 built by asterisk @ ip-10-x-y-z.internal on a x86_64 running Linux on 2023-02-09 12:04:16 UTC
May 11 08:45:41 sip-node01 asterisk: XSLT support not found. XML documentation may be incomplete.
May 11 08:45:41 sip-node01 asterisk: PBX UUID: 6cb2c246-1eec-43fc-90ed-aebe2536555e

You’d need to check all the changes between Asterisk 18.8.0 and 18.17.1, as well as between the version of PJSIP in 18.8.0 and the version in 18.17.1. Nothing personally comes to mind but it’s a difference of over 2 years of changes.

Thank you for your reply.

Confirm the changes one by one.
Please let me know if you have any good knowledge or advice.

The advice is to upgrade to a current supported version of Asterisk.

1 Like

You are right.
Asterisk in our test environment has been upgraded to 18.17.1.
But the production envirnment yet.
My boss is asking for proof that going to 18.17.1 doesn’t crash anymore…:scream:

You’re not going to find proof here. Only you can prove it in your own environment.

Thanks for the advice.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.