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

sean darcy seandarcy2 at gmail.com
Mon Oct 19 20:16:31 CDT 2009


Mark Michelson wrote:
> 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
> 

OK, got it. It segfault'ed again, but I hadn't changed the asterisk init 
to use -g. I have now. Let's see what happens on the next segfault.

sean




More information about the asterisk-dev mailing list