Summary:ASTERISK-16699: Asterisk random crashed 4 times one day
Reporter:Kun Liu (knkcn)Labels:
Date Opened:2010-09-18 06:27:21Date Closed:2010-10-14 13:36:07
Versions:Frequency of
Environment:Attachments:( 0) backtrace1.txt
( 1) backtrace2.txt
( 2) backtrace3.txt
( 3) backtrace4.txt
( 4) crashevent1.log
( 5) crashevent2.log
( 6) crashevent3.log
( 7) crashevent4.log
Description:It is difficult to reproduce the random crashs. But from the CEL events and crash core time we can guess the crash scenes.

The 1st and 2nd crash occured when a queue finished. These crashs seems have relationship with CDR. After I set the cdr enabled=no the crash doesn't occur again.

The 3rd crash occured when a dial-out channel started. The 4th crash is similar with the 3rd, but the crash core generation time is 10 seconds late to the channel start event. I guess it occured when the channel was answered.


No 1 crash information:
core file name: core.localhost-2010-09-15T10:04:25+0800
CEL manager events file: crashevent1.log
backtrace file: backtrace1.txt

No 2 crash information:
core file name: core.localhost-2010-09-15T11:03:45+0800
CEL manager events file: crashevent2.log
backtrace file: backtrace2.txt

No 3 crash information:
core file name: core.localhost-2010-09-15T11:21:27+0800
CEL manager events file: crashevent3.log
backtrace file: backtrace3.txt

No 4 crash information:
core file name: core.localhost-2010-09-15T19:09:14+0800
CEL manager events file: crashevent4.log
backtrace file: backtrace4.txt

PS. "Asterisk Call Manager/1.1|Response: Success|Message: Authentication accepted" means asterisk restarts.
Comments:By: Alec Davis (alecdavis) 2010-09-21 04:46:36

try using the '/n' option in the DIAL, this stops localchan optimization.
like Dial(Local/1234@phones/n,,r)

By: Leif Madsen (lmadsen) 2010-09-21 13:50:52

Your backtraces are optimized -- please upload unoptimized backtraces by enabling DONT_OPTIMIZE in the Compiler Flags section of menuselect.

By: Matthew Nicholson (mnicholson) 2010-09-21 13:58:03

This appears to be a channel reference count issue.

By: Kun Liu (knkcn) 2010-10-14 06:59:59

I think all the issues have been resolved by asterisk-1.8.0rc2. After * was upgrate to rc2, I got a "You can not bridge a Local channel to itself!" error. Then I modified the dialplan.

The original dialplan :
same => n,Set(__INCH=${CHANNEL})
same => n,Queue(sysagent,t,,,${QST}) ;sysagent member likes Local/csy013901234567@sysagent
exten => _csy.,1,Set(_SACHAN=${CHANNEL})
same => n,Dial(SIP/outbound/${EXTEN:3},${QAT},G(sysagent^LO^1))

exten => _L.,1,Goto(${DIALEDPEERNUMBER},sacalling)
same => n,Goto(${DIALEDPEERNUMBER},sacalled)

exten => _o.,1,NOOP(${EXTEN})
same => n(sacalling),Answer()
same => n,Playback(/home/51766/sounds/sys_service)
same => n,Musiconhold()
same => n,Hangup()
same => n(sacalled),CELGenUserEvent(Answer)
same => n,Playback(/home/51766/sounds/call_sa_cause${CSYC})
same => n,MixMonitor(/home/51766/tmpfswav/${CDAT}/${INCI}${CHANNEL:4}.wav,b,/home/51766/bin/mv.sh ^{MIXMONITOR_FILENAME})  
same => n,Set(AUDIOHOOK_INHERIT(MixMonitor)=yes)
same => n,SIPDtmfMode(inband)
same => n,CELGenUserEvent(BridgeStart)
same => n,Bridge(${SACHAN})

The modified lines are:
same => n,Queue(sysagent,t,,,${QST}) -> same => n,Queue(sysagent,,,,${QST})
same => n,Bridge(${SACHAN}) -> same => n,Bridge(${INCH},T)

Now it works well!

BTW. I use local channel and Dial application with G option to realize playback sounds file to caller and callee at the same time. Is there any better way to do it?

By: Leif Madsen (lmadsen) 2010-10-14 13:36:06

Closed per the reporter. If there are any other questions regarding the operation of Asterisk, please use the asterisk-users mailing list. Thanks!