Segfault Asterisk 16.24.1

My asterisk stopped an leave this message:

/var/log/kern.log

Jul 12 13:33:07 central kernel: [5441971.005719] asterisk[45834]: segfault at 69 ip 00005585926bbada sp 00007f352f194cb0 error 4 in asterisk[558592625000+311000]

/var/log/asterisk/full

[2022-07-12 13:33:07] ERROR[45834][C-000078a1] : Got 7 backtrace records
[2022-07-12 13:33:07] ERROR[45834][C-000078a1] bridge_channel.c: FRACK!, Failed assertion bad magic number 0x0 for object 0x7f3558042490 (0)
[2022-07-12 13:33:07] ERROR[45834][C-000078a1] : Got 7 backtrace records
# 0: /usr/sbin/asterisk(__ao2_unlock+0x7d) [0x55859269152d]
# 1: /usr/sbin/asterisk(ast_bridge_queue_everyone_else+0x2fa) [0x5585926bbcaa]
# 2: /usr/sbin/asterisk(+0x8d445) [0x5585926b2445]
# 3: /usr/sbin/asterisk(+0x8ba52) [0x5585926b0a52]
# 4: /usr/sbin/asterisk(+0x1ceabc) [0x5585927f3abc]
# 5: /lib/x86_64-linux-gnu/libpthread.so.0(+0x74a4) [0x7f35f67a54a4]
# 6: /lib/x86_64-linux-gnu/libc.so.6(clone+0x3f) [0x7f35f53afd0f]

That wasn’t the first time asterisk stopped work with a segfault but was the first time I got backtrace records on /var/log/asterisk/full what is the problem and how can I solve that?

  • Asterisk 16.24.1
  • Debian 9.11
  • 4.9.0-11-amd64

You probably can’t. It would need to be filed as an issue[1] following the wiki instructions[2] for getting an actual backtrace, along with log and description of usage of Asterisk. The version of Asterisk in use is also a few months old so you may be asked to try the latest version instead. There is also no time frame on when such a thing would get looked into.

[1] System Dashboard - Digium/Asterisk JIRA
[2] https://wiki.asterisk.org/wiki/display/AST/Getting+a+Backtrace

I’ve had quite a lot of problems with Asterisk 16 crashing seemingly at random, we decided to upgrade the servers to Asterisk 18 instead, which has been working like a charm ever since, no crashes. Perhaps worth looking into.

Thanks.

I will see if that is possible.
Thanks.

In the past I could use safe_asterisk in case of Asterisk stops unexpectedly, now looks it isn’t possible anymore:

# - Eliminated SAFE_ASTERISK since it doesn't work as LSB script (it could require a independent "safe_asterisk" init script).

Is there another way to make Asterisk get back running automatically in case it stops for any reason?