Summary:ASTERISK-12292: Local dial with moh causes crash
Reporter:robert sutton (rlsutton2)Labels:
Date Opened:2008-07-01 08:15:55Date Closed:2008-09-12 17:12:59
Versions:Frequency of
Environment:Attachments:( 0) asterisk-core-show-locks.txt
( 1) asterisk-core-show-threads.txt
( 2) bug12965.diff
( 3) gdb-bt-full.txt
( 4) gdb-thread-apply-all-bt.txt
Description:When a call using dial local/ goes into musiconhold, and then the sip extension initiating this call puts it on hold (more musiconhold) asterisk enters a "crashed" state. any attempt from CLI to "show channels" will kill the CLI. manager API slows down to an unusable rate. CPU load remains normal. Asterisk can not be restarted or shutdown from the cli, soft hangup is non functional. The only resolve is to "Kill -9" asterisk.

This problem appears to exist in asterisk 1.2.18 and 1.4.17(the versions I have handy).

This crash can be reproduce with the aid of the following dial plan

exten => 400,1,answer
exten => 400,2,dial(local/401)

exten => 401,1,answer
exten => 401,2,musiconhold()

from a SIP phone dial 400, you hear music. Put the call on hold, about 4 seconds later asterisk has entered the above state.
Comments:By: Tilghman Lesher (tilghman) 2008-07-01 08:21:39

Please recompile with DONT_OPTIMIZE and DEBUG_THREADS.  Then, when the above described condition occurs, run 'core show locks' and upload the resulting output as a text file to this issue.  Also, it would be helpful if you would first update to or later (possibly SVN 1.4), as the issue may have already been fixed.

By: Russell Bryant (russell) 2008-07-02 10:15:06

Please try the latest version before reporting a bug.

By: robert sutton (rlsutton2) 2008-07-06 07:32:14

I have now completed further testing as directed against

I have also noted that this problem only exists if zaptel hardware is present or ztdummy is loaded.

When testing the symptoms are different to those I previously described although still terminal.  Each call placed as described adds about 33 (percent) to the cpu load of asterisk, 3+ such calls pushes asterisk cpu to 100% and is nolonger able to maintain call quality or accept new calls.

See attached files for locks, threads etc.

By: Jeff Peeler (jpeeler) 2008-09-03 15:56:18

The attached diff fixed the problem for me.

By: Jeff Peeler (jpeeler) 2008-09-12 16:47:22

Haven't heard any problems so I'm going to commit.

By: Digium Subversion (svnbot) 2008-09-12 17:12:57

Repository: asterisk
Revision: 142927

U   branches/1.4/channels/chan_local.c

r142927 | jpeeler | 2008-09-12 17:12:56 -0500 (Fri, 12 Sep 2008) | 6 lines

(closes issue ASTERISK-12292)
Reported by: rlsutton2

Prevents local channels from playing MOH at each other which was causing ast_generic_bridge to loop much faster.