Asterisk crashes in vmware vsphere 7 environment - asterisk 20.5.2

I run asterisk in a vmware vsphere 7 environment, I have 6 VMs with ubuntu 22.04, I run asterisk in docker and every so often, I don’t know exactly when, maybe when there is a high volume of calls, asterisk crashes.

in Asterisk’s logs I don’t see anything, but in dmesg I see the following lines:

[Wed Jan 24 11:50:50 2024] asterisk[98615]: segfault at b8 ip 00007f2b06494cda sp 00007f2ab56a5840 error 4 in libasteriskpj.so.2[7f2b0638d000+10b000]
[Wed Jan 24 11:50:50 2024] Code: 49 8b 3c 24 48 0f 48 da 48 85 db 74 d3 48 8b 36 48 89 da e8 b8 1a f0 ff 49 8b 3c 24 eb c2 66 90 f3 0f 1e fa 55 53 48 83 ec 08 <48> 8b 5f 08 48 8b 6e 08 48 85 db 7e 41 b8 01 00 00 00 48 85 ed 7e

I have another physical server (not a VM) in the same environment that does the same actions, and there it doesn’t happen.

I don’t know what could cause this, I tried to compile asterisk with:

menuselect/menuselect --disable BUILD_NATIVE menuselect.makeopts

But it doesn’t help.

Does anyone perhaps know of special instructions for building an asterisk in such a VM environment?
What could be causing the problem?

Aside from disabling BUILD_NATIVE as mentioned there’s nothing else special. The only thing that can be said is a crash occurred within the PJSIP stack. A backtrace[1] would be required to know anything further.

[1] Getting a Backtrace - Asterisk Documentation

Thank you,

I could not take Backtrace because the application runs in Docker.

Anyway, I tried to do the following:

Instead of assigning 15 processor cores to the VM - which are 15 sockets, I did all the cores in one socket.

That is, instead of 15 separate processor units that each have one core, I put 15 cores in one socket.

This seems to have solved the problem, I’m still following up on the issue.

If you’re running in Docker and getting segfaults this thread shows how I enabled the required reporting makeopts in a Docker build: Non-interactively enabling menuselect debug options

Might be useful to you. The segfault I experienced was in testing a new container so I was able to shell in and process the coredump by hand. I have persistent storage in my Asterisk container for things like the voicemail spool, I assume the core could be configured to dump there for post-processing but I haven’t set that up yet.

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