[asterisk-dev] 1.6.1: segfault ... error 6 - how to debug?

Mark Michelson mmichelson at digium.com
Mon Oct 19 10:41:23 CDT 2009


sean darcy wrote:
> I've been getting random crashes (every 3-5 days) with 1.6.1.6 when 
> nothing is happening:
> 
> Oct 17 09:21:52 asterisk kernel: asterisk[2880]: segfault at 0 ip 
> 000000000043d269 sp 00007fcfb9219b60 error 6 in asterisk
>   (deleted)[400000+170000]
> 
> even though nothing is happening. This is a lightly loaded asterisk 
> server, and there are no calls:
> 
> [2009-10-17 09:09:53] NOTICE[28424] chan_sip.c: Peer 
> 'proxy01.sipphone.com' is now Lagged. (2129ms / 2000ms)
> [2009-10-17 09:10:04] NOTICE[28424] chan_sip.c: Peer 
> 'proxy01.sipphone.com' is now Reachable. (1202ms / 2000ms)
> [2009-10-17 18:38:11] NOTICE[3235] cdr.c: CDR simple logging enabled.
> 
> 
> I've just grabbed today's svn and built it with DON'T OPTIMIZE and DEBUG 
> THREADS. I assume this will get me a core dump in /tmp if there's 
> another segfault. Is this what I need for a bug report?
> 
> sean

Running Asterisk with the -g option is what will cause a core dump to be 
generated during an abnormal exit. The location of the core dump is dependent 
upon system settings. On my box, for example, the core is dumped to pwd. I'm 
pretty sure that the safe_asterisk script specifically dumps the cores to /tmp 
though.

DONT_OPTIMIZE is still important though because it means the backtrace obtained 
from the core dump will be as accurate as possible and generally makes finding 
the problem spot easier. DEBUG_THREADS is not so important when trying to debug 
a crash. It's main use is for reporting errors when locks are misused and for 
obtaining current information on the system when there is a deadlock.

Mark Michelson



More information about the asterisk-dev mailing list