[Asterisk-Users] Asterisk and Festival (* dies with no info)

2004-01-13 Thread Doug Raum
Hello,

I have Asterisk running on a RH9 box; Everything seems to be working as it
should, except for Festival.  Every time that Festival is called from
Asterisk, Asterisk silently shuts down.  Festival doesn't give any error
indication and Asterisk just plain dies without a peep.

Festival was installed per the Wiki, using source and patched with
festival-1.4.3-diff;  it works fine at the console.  Asterisk is built from
CVS and has been configured per the Wiki as well, including the test
extension (555).  I start Festival with the festival_server script, then
start Asterisk.

(snippet from extensions.conf)
exten = 555,1,Answer
exten = 555,2,Festival(mary had a little lamb)
exten = 555,3,Hangup

Here's what Asterisk says with -v, calling from SIP 81001 to 555:
 Asterisk Ready.
 -- Executing Answer(SIP/81001-e87b, ) in new stack
 -- Executing Festival(SIP/81001-e87b, mary had a little lamb) in
new stack
   == Parsing '/etc/asterisk/festival.conf': Found
   == Spawn extension (from-sip, 555, 2) exited non-zero on 'SIP/81001-e87b'

...at this point Asterisk is dead.  No segfault, no error message.

# cat /var/log/asterisk/messages
Jan  7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466
(set_config): Ignoring port for now

# cat /var/log/asterisk/event_log
Jan  7 15:36:47 asterisk[5038]: Started Asterisk Event Logger

(I capture stderr to asterisk.err)
# cat /var/log/asterisk/asterisk.err
Warning, flexibel rate not heavily tested!
Ouch ... error while writing audio data: : Broken pipe

I'm guessing the ouch comes from mpg123 being surprised that Asterisk is
gone.

Debug info in syslog seems pretty unhelpful if I use -d:
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 4024 (check_user):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 5098 (handle_request):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 1002 (find_user):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 3417 (build_route):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 304 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 361 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 363 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 379 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 400 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]: File
app_festival.c, Line 410 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 567 (__sip_ack):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]: File
chan_sip.c, Line 567 (__sip_ack):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]: File
cdr_addon_mysql.c, Line 123 (mysql_log):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]: File
cdr_addon_mysql.c, Line 130 (mysql_log):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]: File
chan_sip.c, Line 1081 (sip_hangup):

Festival's info is very minimal, but seems to indicate success:
# cat festival_server.log
Load server start ./festival_server.scm
festival port=1314
wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION
wrapper Wed Jan 7 15:36:41 EST 2004 : waiting
serverWed Jan  7 15:36:41 2004 : Festival server started on port 1314
client(1) Wed Jan  7 15:37:00 2004 : accepted from localhost
client(1) Wed Jan  7 15:37:00 2004 : disconnected

...a process listing after the * crash shows a zombie festival, although
Festival will happily take new connections:
 5024 ?S  0:00 /bin/sh /usr/local/festival/bin/festival_server
 5030 ?S  0:00 festival --server ./festival_server.scm
 5065 ?Z  0:00 [festival defunct]

I can restart Asterisk again, and do this over and over and over.  If I use
the -g option to generate a core dump, I never see one generated.

Any thoughts on what might be happening here?  What am I doing wrong?

-- 
Doug
___
Asterisk-Users mailing list
[EMAIL PROTECTED]
http://lists.digium.com/mailman/listinfo/asterisk-users
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users


Re: [Asterisk-Users] Asterisk and Festival (* dies with no info)

2004-01-13 Thread Iain Stevenson
It may not be you, I think the Festival driver is buggy.  Specifically, 
I've found that the the way in which you pass the text to Festival matters. 
If I use the Festival () suntax then it won't work.  If I use the wrong 
sort of quotation mark  instead of ' there are problems.  Asterisk will 
consume vast amounts of processor resources.

However, if I specify the command in a way the Festival app likes then all 
is OK.  Try variants like:

exten = 555,4,Festival,'mary had a little lamb'

 Iain



--On Tuesday, January 13, 2004 8:11 am -0500 Doug Raum [EMAIL PROTECTED] 
wrote:

Hello,

I have Asterisk running on a RH9 box; Everything seems to be working as it
should, except for Festival.  Every time that Festival is called from
Asterisk, Asterisk silently shuts down.  Festival doesn't give any error
indication and Asterisk just plain dies without a peep.
Festival was installed per the Wiki, using source and patched with
festival-1.4.3-diff;  it works fine at the console.  Asterisk is built
from CVS and has been configured per the Wiki as well, including the test
extension (555).  I start Festival with the festival_server script, then
start Asterisk.
(snippet from extensions.conf)
exten = 555,1,Answer
exten = 555,2,Festival(mary had a little lamb)
exten = 555,3,Hangup
Here's what Asterisk says with -v, calling from SIP 81001 to 555:
 Asterisk Ready.
 -- Executing Answer(SIP/81001-e87b, ) in new stack
 -- Executing Festival(SIP/81001-e87b, mary had a little lamb) in
new stack
   == Parsing '/etc/asterisk/festival.conf': Found
   == Spawn extension (from-sip, 555, 2) exited non-zero on
'SIP/81001-e87b'
...at this point Asterisk is dead.  No segfault, no error message.

# cat /var/log/asterisk/messages
Jan  7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466
(set_config): Ignoring port for now
# cat /var/log/asterisk/event_log
Jan  7 15:36:47 asterisk[5038]: Started Asterisk Event Logger
(I capture stderr to asterisk.err)
# cat /var/log/asterisk/asterisk.err
Warning, flexibel rate not heavily tested!
Ouch ... error while writing audio data: : Broken pipe
I'm guessing the ouch comes from mpg123 being surprised that Asterisk is
gone.
Debug info in syslog seems pretty unhelpful if I use -d:
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 4024 (check_user):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 5098 (handle_request):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 1002 (find_user):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 3417 (build_route):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 304 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 361 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 363 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 379 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 400 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1234379840]:
File app_festival.c, Line 410 (festival_exec):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 567 (__sip_ack):
Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00 DEBUG[1150495040]:
File chan_sip.c, Line 567 (__sip_ack):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]:
File cdr_addon_mysql.c, Line 123 (mysql_log):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]:
File cdr_addon_mysql.c, Line 130 (mysql_log):
Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01 DEBUG[1234379840]:
File chan_sip.c, Line 1081 (sip_hangup):
Festival's info is very minimal, but seems to indicate success:
# cat festival_server.log
Load server start ./festival_server.scm
festival port=1314
wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION
wrapper Wed Jan 7 15:36:41 EST 2004 : waiting
serverWed Jan  7 15:36:41 2004 : Festival server started on port 1314
client(1) Wed Jan  7 15:37:00 2004 : accepted from localhost
client(1) Wed Jan  7 15:37:00 2004 : disconnected
...a process listing after the * crash shows a zombie festival, although
Festival will happily take new connections:
 5024 ?S  0:00 /bin/sh /usr/local/festival/bin/festival_server
 5030 ?S  0:00 festival --server ./festival_server.scm
 5065 ?Z  0:00 [festival defunct]
I can restart Asterisk again, and do this over and over and over.  If I
use the -g option to generate a core dump, I never see one generated.
Any thoughts on what might be happening here?  What am I doing wrong?

--
Doug

Re: [Asterisk-Users] Asterisk and Festival (* dies with no info)

2004-01-13 Thread Chris Albertson

strace might give you some helpfull info.  See man strace.
It will record system calls and signels.

Given what you say I'd run Asterisk in a debugger.  I like
DDD  Compile everything with the -g gcc option first
so the debugger can display source code lines.  In DDD when
the program stops the curser will be left on the last line
executed and you can cause it to run backwards and see
how you got there. 

Also, are you sure the Asterisk process died and isnot just
hung either in an infinite loop or waiting for something
that will never happen?  What doe ps say? 

--- Doug Raum [EMAIL PROTECTED] wrote:
 Hello,
 
 I have Asterisk running on a RH9 box; Everything seems to be working
 as it
 should, except for Festival.  Every time that Festival is called from
 Asterisk, Asterisk silently shuts down.  Festival doesn't give any
 error
 indication and Asterisk just plain dies without a peep.
 
 Festival was installed per the Wiki, using source and patched with
 festival-1.4.3-diff;  it works fine at the console.  Asterisk is
 built from
 CVS and has been configured per the Wiki as well, including the test
 extension (555).  I start Festival with the festival_server script,
 then
 start Asterisk.
 
 (snippet from extensions.conf)
 exten = 555,1,Answer
 exten = 555,2,Festival(mary had a little lamb)
 exten = 555,3,Hangup
 
 Here's what Asterisk says with -v, calling from SIP 81001 to 555:
  Asterisk Ready.
  -- Executing Answer(SIP/81001-e87b, ) in new stack
  -- Executing Festival(SIP/81001-e87b, mary had a little
 lamb) in
 new stack
== Parsing '/etc/asterisk/festival.conf': Found
== Spawn extension (from-sip, 555, 2) exited non-zero on
 'SIP/81001-e87b'
 
 ...at this point Asterisk is dead.  No segfault, no error message.
 
 # cat /var/log/asterisk/messages
 Jan  7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466
 (set_config): Ignoring port for now
 
 # cat /var/log/asterisk/event_log
 Jan  7 15:36:47 asterisk[5038]: Started Asterisk Event Logger
 
 (I capture stderr to asterisk.err)
 # cat /var/log/asterisk/asterisk.err
 Warning, flexibel rate not heavily tested!
 Ouch ... error while writing audio data: : Broken pipe
 
 I'm guessing the ouch comes from mpg123 being surprised that Asterisk
 is
 gone.
 
 Debug info in syslog seems pretty unhelpful if I use -d:
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 4024 (check_user):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 5098 (handle_request):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 1002 (find_user):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 3417 (build_route):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 304 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 361 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 363 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 379 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 400 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1234379840]: File
 app_festival.c, Line 410 (festival_exec):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 567 (__sip_ack):
 Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
 DEBUG[1150495040]: File
 chan_sip.c, Line 567 (__sip_ack):
 Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
 DEBUG[1234379840]: File
 cdr_addon_mysql.c, Line 123 (mysql_log):
 Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
 DEBUG[1234379840]: File
 cdr_addon_mysql.c, Line 130 (mysql_log):
 Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
 DEBUG[1234379840]: File
 chan_sip.c, Line 1081 (sip_hangup):
 
 Festival's info is very minimal, but seems to indicate success:
 # cat festival_server.log
 Load server start ./festival_server.scm
 festival port=1314
 wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION
 wrapper Wed Jan 7 15:36:41 EST 2004 : waiting
 serverWed Jan  7 15:36:41 2004 : Festival server started on port
 1314
 client(1) Wed Jan  7 15:37:00 2004 : accepted from localhost
 client(1) Wed Jan  7 15:37:00 2004 : disconnected
 
 ...a process listing after the * crash shows a zombie festival,
 although
 Festival will happily take new connections:
  5024 ?S  0:00 /bin/sh
 /usr/local/festival/bin/festival_server
  5030 ?S  0:00 festival --server ./festival_server.scm
  5065 ?Z  0:00 [festival defunct]
 
 I can restart Asterisk again, and do this over and over and over.  If
 I use
 the -g option to generate a core 

Re: [Asterisk-Users] Asterisk and Festival (* dies with no info)

2004-01-13 Thread Brian West
You can attach to it with gdb and do a thread apply all bt and report a
bug if it is in fact a deadlock'ed *

bkw

On Tue, 13 Jan 2004, Chris Albertson wrote:


 strace might give you some helpfull info.  See man strace.
 It will record system calls and signels.

 Given what you say I'd run Asterisk in a debugger.  I like
 DDD  Compile everything with the -g gcc option first
 so the debugger can display source code lines.  In DDD when
 the program stops the curser will be left on the last line
 executed and you can cause it to run backwards and see
 how you got there.

 Also, are you sure the Asterisk process died and isnot just
 hung either in an infinite loop or waiting for something
 that will never happen?  What doe ps say?

 --- Doug Raum [EMAIL PROTECTED] wrote:
  Hello,
 
  I have Asterisk running on a RH9 box; Everything seems to be working
  as it
  should, except for Festival.  Every time that Festival is called from
  Asterisk, Asterisk silently shuts down.  Festival doesn't give any
  error
  indication and Asterisk just plain dies without a peep.
 
  Festival was installed per the Wiki, using source and patched with
  festival-1.4.3-diff;  it works fine at the console.  Asterisk is
  built from
  CVS and has been configured per the Wiki as well, including the test
  extension (555).  I start Festival with the festival_server script,
  then
  start Asterisk.
 
  (snippet from extensions.conf)
  exten = 555,1,Answer
  exten = 555,2,Festival(mary had a little lamb)
  exten = 555,3,Hangup
 
  Here's what Asterisk says with -v, calling from SIP 81001 to 555:
   Asterisk Ready.
   -- Executing Answer(SIP/81001-e87b, ) in new stack
   -- Executing Festival(SIP/81001-e87b, mary had a little
  lamb) in
  new stack
 == Parsing '/etc/asterisk/festival.conf': Found
 == Spawn extension (from-sip, 555, 2) exited non-zero on
  'SIP/81001-e87b'
 
  ...at this point Asterisk is dead.  No segfault, no error message.
 
  # cat /var/log/asterisk/messages
  Jan  7 15:36:49 WARNING[1074416352]: File chan_iax2.c, Line 5466
  (set_config): Ignoring port for now
 
  # cat /var/log/asterisk/event_log
  Jan  7 15:36:47 asterisk[5038]: Started Asterisk Event Logger
 
  (I capture stderr to asterisk.err)
  # cat /var/log/asterisk/asterisk.err
  Warning, flexibel rate not heavily tested!
  Ouch ... error while writing audio data: : Broken pipe
 
  I'm guessing the ouch comes from mpg123 being surprised that Asterisk
  is
  gone.
 
  Debug info in syslog seems pretty unhelpful if I use -d:
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 4024 (check_user):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 5098 (handle_request):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 1002 (find_user):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 3417 (build_route):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 304 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 361 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 363 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 379 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 400 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1234379840]: File
  app_festival.c, Line 410 (festival_exec):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 567 (__sip_ack):
  Jan  7 15:37:00  asterisk_pbx[5038]: Jan  7 15:37:00
  DEBUG[1150495040]: File
  chan_sip.c, Line 567 (__sip_ack):
  Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
  DEBUG[1234379840]: File
  cdr_addon_mysql.c, Line 123 (mysql_log):
  Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
  DEBUG[1234379840]: File
  cdr_addon_mysql.c, Line 130 (mysql_log):
  Jan  7 15:37:01  asterisk_pbx[5038]: Jan  7 15:37:01
  DEBUG[1234379840]: File
  chan_sip.c, Line 1081 (sip_hangup):
 
  Festival's info is very minimal, but seems to indicate success:
  # cat festival_server.log
  Load server start ./festival_server.scm
  festival port=1314
  wrapper Wed Jan 7 15:36:40 EST 2004 : USING DEFAULT CONFIGURATION
  wrapper Wed Jan 7 15:36:41 EST 2004 : waiting
  serverWed Jan  7 15:36:41 2004 : Festival server started on port
  1314
  client(1) Wed Jan  7 15:37:00 2004 : accepted from localhost
  client(1) Wed Jan  7 15:37:00 2004 : disconnected
 
  ...a process listing after the * crash shows a zombie festival,
  although
  Festival will happily take new connections:
   5024 ?S  0:00 /bin/sh