[Home]

Summary:ASTERISK-02647: show channels crashes asterisk
Reporter:heison (heison)Labels:
Date Opened:2004-10-21 14:36:15Date Closed:2011-06-07 14:04:57
Priority:MajorRegression?No
Status:Closed/CompleteComponents:Core/General
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:With CVS head (asterisk & zaptel), I can realiabily reproduce this problem...

show channels will crash asterisk, and sometime it may restart if started by safe_asterisk, but sometimes it doesn't

and if it gets restarted by safe_asterisk, there is one occasion where it bridge an incoming call with an outgoing call made from a SIP phone. The incoming caller can hear the  DTMF dialed from the SIP phone.

The machine I had this problem is running 2 X100P cards.
Comments:By: heison (heison) 2004-10-21 14:41:53

when there is no active channel, show channels works just fine...
Verbosity is atleast 11
Core debug was 0 and is now 7
pbx*CLI> show channels
       Channel  (Context    Extension    Pri )   State Appl.         Data
0 active channel(s)

but when there is a channel opened (Zap in this case), show channels will crash asterisk:
   -- Executing SetVar("Zap/1-1", "count=1") in new stack
   -- Executing BackGround("Zap/1-1", "ext-or-zero") in new stack
   -- Playing 'ext-or-zero' (language 'en')
pbx*CLI> show channels
       Channel  (Context    Extension    Pri )   State Appl.         Data
pbx*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
Asterisk ending (0).
[root@pbx root]#

By: heison (heison) 2004-10-21 14:45:37

i'm going to attach everything before it crashes...
[root@pbx root]# asterisk -vvvvvvvvvvvrddddddd
Parsing /etc/asterisk/asterisk.conf
No file to parse: /etc/asterisk/extconfig.conf
Asterisk CVS-HEAD-10/15/04-00:43:35, Copyright (C) 1999-2004 Digium.
Written by Mark Spencer <markster@digium.com>
=========================================================================
Connected to Asterisk CVS-HEAD-10/15/04-00:43:35 currently running on pbx (pid = 1387)
nection>
Verbosity was 3 and is now 11
Core debug was 0 and is now 7
   -- Starting simple switch on 'Zap/1-1'
   -- Executing Wait("Zap/1-1", "1") in new stack
   -- Executing Answer("Zap/1-1", "") in new stack
   -- Executing DigitTimeout("Zap/1-1", "5") in new stack
   -- Set Digit Timeout to 5
   -- Executing ResponseTimeout("Zap/1-1", "10") in new stack
   -- Set Response Timeout to 10
   -- Executing GotoIf("Zap/1-1", "0?50:6") in new stack
   -- Goto (incoming,s,6)
   -- Executing GotoIf("Zap/1-1", "0?50:7") in new stack
   -- Goto (incoming,s,7)
   -- Executing GotoIf("Zap/1-1", "0?50:8") in new stack
   -- Goto (incoming,s,8)
   -- Executing GotoIf("Zap/1-1", "0?50:9") in new stack
   -- Goto (incoming,s,9)
   -- Executing GotoIf("Zap/1-1", "0?50:10") in new stack
   -- Goto (incoming,s,10)
   -- Executing GotoIf("Zap/1-1", "0?50:12") in new stack
   -- Goto (incoming,s,12)
   -- Executing GotoIf("Zap/1-1", "0?50:13") in new stack
   -- Goto (incoming,s,13)
   -- Executing GotoIf("Zap/1-1", "0?50:14") in new stack
   -- Goto (incoming,s,14)
   -- Executing GotoIf("Zap/1-1", "0?50:15") in new stack
   -- Goto (incoming,s,15)
   -- Executing GotoIf("Zap/1-1", "0?50:16") in new stack
   -- Goto (incoming,s,16)
   -- Executing GotoIf("Zap/1-1", "0?50:17") in new stack
   -- Goto (incoming,s,17)
   -- Executing GotoIf("Zap/1-1", "0?45:18") in new stack
   -- Goto (incoming,s,18)
   -- Executing GotoIf("Zap/1-1", "0?50:19") in new stack
   -- Goto (incoming,s,19)
   -- Executing GotoIf("Zap/1-1", "0?50:20") in new stack
   -- Goto (incoming,s,20)
   -- Executing GotoIf("Zap/1-1", "0?50:21") in new stack
   -- Goto (incoming,s,21)
   -- Executing GotoIf("Zap/1-1", "0?45:22") in new stack
   -- Goto (incoming,s,22)
   -- Executing GotoIf("Zap/1-1", "0?45:23") in new stack
   -- Goto (incoming,s,23)
   -- Executing Goto("Zap/1-1", "s|30") in new stack
   -- Goto (incoming,s,30)
   -- Executing GotoIf("Zap/1-1", "0?40:31") in new stack
   -- Goto (incoming,s,31)
   -- Executing GotoIf("Zap/1-1", "0?40:32") in new stack
   -- Goto (incoming,s,32)
   -- Executing GotoIf("Zap/1-1", "0?40:33") in new stack
   -- Goto (incoming,s,33)
   -- Executing GotoIf("Zap/1-1", "0?40:34") in new stack
   -- Goto (incoming,s,34)
   -- Executing GotoIf("Zap/1-1", "0?40:35") in new stack
   -- Goto (incoming,s,35)
   -- Executing GotoIf("Zap/1-1", "0?40:36") in new stack
   -- Goto (incoming,s,36)
   -- Executing GotoIf("Zap/1-1", "0?40:59") in new stack
   -- Goto (incoming,s,59)
   -- Executing SetVar("Zap/1-1", "count=0") in new stack
   -- Executing BackGround("Zap/1-1", "silence/1") in new stack
   -- Playing 'silence/1' (language 'en')
   -- Executing BackGround("Zap/1-1", "home-greeting") in new stack
   -- Playing 'home-greeting' (language 'en')
pbx*CLI> show channels
       Channel  (Context    Extension    Pri )   State Appl.         Data
pbx*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
Asterisk ending (0).
[root@pbx root]#

By: Clod Patry (junky) 2004-10-21 19:49:46

that's strange, cause all this is in the function quit_handler. And i dont see why that could happen. When doing a show channels it's in the function handle_chanlist. I'd like to know why that could happens too.

Have ya tried with the latest CVS version to see if the bug is still there?

By: Brian West (bkw918) 2004-10-21 23:54:48

well I can't get show channels to do this now...

but I do get this wonderful tidbit:

channel.c line 625 (ast_channel_free): Error destroying mutex: Device or resource busy

By: heison (heison) 2004-10-22 10:46:09

with a fresh CVS checkout, the problem seem to have gone away.

Connected to Asterisk CVS-HEAD-10/21/04-22:29:48 currently running on pbx (pid = 14946)
nnection
Verbosity was 3 and is now 8
Core debug was 0 and is now 8
   -- Registered to '69.73.19.178', who sees us as 69.196.96.46:4569
   -- Starting simple switch on 'Zap/1-1'
   -- Executing Wait("Zap/1-1", "1") in new stack
   -- Executing Answer("Zap/1-1", "") in new stack
   -- Executing DigitTimeout("Zap/1-1", "5") in new stack
   -- Set Digit Timeout to 5
   -- Executing ResponseTimeout("Zap/1-1", "10") in new stack
   -- Set Response Timeout to 10
   -- Executing GotoIf("Zap/1-1", "0?50:6") in new stack
   -- Goto (incoming,s,6)
   -- Executing GotoIf("Zap/1-1", "0?50:7") in new stack
   -- Goto (incoming,s,7)
   -- Executing GotoIf("Zap/1-1", "0?50:8") in new stack
   -- Goto (incoming,s,8)
   -- Executing GotoIf("Zap/1-1", "0?50:9") in new stack
   -- Goto (incoming,s,9)
   -- Executing GotoIf("Zap/1-1", "0?50:10") in new stack
   -- Goto (incoming,s,10)
   -- Executing GotoIf("Zap/1-1", "0?50:12") in new stack
   -- Goto (incoming,s,12)
   -- Executing GotoIf("Zap/1-1", "0?50:13") in new stack
   -- Goto (incoming,s,13)
   -- Executing GotoIf("Zap/1-1", "0?50:14") in new stack
   -- Goto (incoming,s,14)
   -- Executing GotoIf("Zap/1-1", "0?50:15") in new stack
   -- Goto (incoming,s,15)
   -- Executing GotoIf("Zap/1-1", "0?50:16") in new stack
   -- Goto (incoming,s,16)
   -- Executing GotoIf("Zap/1-1", "0?50:17") in new stack
   -- Goto (incoming,s,17)
   -- Executing GotoIf("Zap/1-1", "0?45:18") in new stack
   -- Goto (incoming,s,18)
   -- Executing GotoIf("Zap/1-1", "0?50:19") in new stack
   -- Goto (incoming,s,19)
   -- Executing GotoIf("Zap/1-1", "0?50:20") in new stack
   -- Goto (incoming,s,20)
   -- Executing GotoIf("Zap/1-1", "0?50:21") in new stack
   -- Goto (incoming,s,21)
   -- Executing GotoIf("Zap/1-1", "0?45:22") in new stack
   -- Goto (incoming,s,22)
   -- Executing GotoIf("Zap/1-1", "0?45:23") in new stack
   -- Goto (incoming,s,23)
   -- Executing Goto("Zap/1-1", "s|30") in new stack
   -- Goto (incoming,s,30)
   -- Executing GotoIf("Zap/1-1", "0?40:31") in new stack
   -- Goto (incoming,s,31)
   -- Executing GotoIf("Zap/1-1", "0?40:32") in new stack
   -- Goto (incoming,s,32)
   -- Executing GotoIf("Zap/1-1", "0?40:33") in new stack
   -- Goto (incoming,s,33)
   -- Executing GotoIf("Zap/1-1", "0?40:34") in new stack
   -- Goto (incoming,s,34)
   -- Executing GotoIf("Zap/1-1", "0?40:35") in new stack
   -- Goto (incoming,s,35)
   -- Executing GotoIf("Zap/1-1", "0?40:36") in new stack
   -- Goto (incoming,s,36)
   -- Executing GotoIf("Zap/1-1", "0?40:59") in new stack
   -- Goto (incoming,s,59)
   -- Executing SetVar("Zap/1-1", "count=0") in new stack
   -- Executing BackGround("Zap/1-1", "silence/1") in new stack
   -- Playing 'silence/1' (language 'en')
   -- Executing BackGround("Zap/1-1", "home-greeting") in new stack
   -- Playing 'home-greeting' (language 'en')
   -- Executing SetVar("Zap/1-1", "count=1") in new stack
   -- Executing BackGround("Zap/1-1", "ext-or-zero") in new stack
   -- Playing 'ext-or-zero' (language 'en')
pbx*CLI> show channels
       Channel  (Context    Extension    Pri )   State Appl.         Data
       Zap/1-1  (incoming   s            63  )      Up BackGround    ext-or-zero

By: heison (heison) 2004-10-22 11:21:12

reposting output of show channels:

Connected to Asterisk CVS-HEAD-10/21/04-22:29:48 currently running on pbx (pid = 14946)
nnection
Verbosity is atleast 8
Core debug is atleast 8
pbx*CLI> show channels
       Channel  (Context    Extension    Pri )   State Appl.         Data
       Zap/1-1  (incoming   s            61  )      Up BackGround    home-greeting
1 active channel(s)

By: Mark Spencer (markster) 2004-10-22 13:15:24

YOu should always do "make clean ; make install" or possibly do a fresh checkout before placing a bug.

Because a lot of structures are changing in CVS, it's important to be sure builds are *clean*.