[Home]

Summary:ASTERISK-13034: crash after misdn_set_opt_exec
Reporter:Daniel Wagner (dwagner)Labels:
Date Opened:2008-11-07 10:26:03.000-0600Date Closed:2011-06-07 14:00:21
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Channels/chan_misdn
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:Today we have 3 crashes by receiveing a fax.
We use the misdn_set_opt_exec command to disable echo-cancelation with the DB-Parameter NEC.

This is our dialplan

;--- Ungueltige Durchwahlen abfangen
exten => h,1,Hangup
exten => i,1,Goto(call,1)
exten => t,1,Goto(call,1)
exten => 0,1,Goto(call,1)

;--- Start-Extension fuer ohne Durchwahl oder analoge Geraete
exten => s,1,NoOp(Start-Extension fuer ohne Durchwahl oder analoge Geraete)
exten => s,2,Waitfordigits(2000,,,,3)
exten => s,3,Goto(call,1)

;--- Direkte Durchwahl
exten => _X.,1,NoOp(Direkte Durchwahl)
exten => _X.,n,Waitfordigits(2000,,,,3)
exten => _X.,n,SIPAddHeader("Alert-Info:<http://www.notused.com>\;info=alert-external") ; fuer snoms
exten => _X.,n,ExecIf($["${DB(NEC/${EXTEN})}"="-1"],misdn_set_opt,!e:vt0)
exten => _X.,n,LookupCIDName
exten => _X.,n,Set(CALLERID(num)=0${CALLERID(num)})
exten => _X.,n,Set(REALCALLERIDNUM=${CALLERID(num)})
exten => _X.,n,Answer
exten => _X.,n,Macro(dial,30,${DIAL_OPTS},${EXTEN})
exten => _X.,n,ExecIf($["${DB(CFB/${EXTEN})}"="-1"],Busy)
exten => _X.,n,Goto(call,6)

;--- Keine Durchwahl gewaehlt
exten => call,1,NoOp(Keine Durchwahl gewaehlt)
exten => call,2,NoOp
exten => call,3,Set(CALLERID(num)=0${CALLERID(num)})
exten => call,4,Set(REALCALLERIDNUM=${CALLERID(num)})
exten => call,5,SIPAddHeader("Alert-Info:<http://www.notused.com>\;info=alert-external") ; fuer snoms
exten => call,6,Answer
;--- Wenn Ausserhalb der Geschaeftszeiten dann gehe auf 100
exten => call,7,NoOp(Zu den Geschaeftszeiten)
exten => call,n,GotoIfTime(07:30-17:30|mon-thu|*|*?call,100)
exten => call,n,GotoIfTime(07:30-12:00|fri|*|*?call,100)
exten => call,n,Macro(dial,60,${DIAL_OPTS_AGZ},${FALLBACK_EXT})
exten => call,n,Macro(dial,15,${DIAL_OPTS_AGZ},${BACKUP_EXT})
exten => call,n,Macro(dial,999,${DIAL_OPTS_AGZ},${FALLBACK_EXT})
exten => call,n,Voicemail(${FALLBACK_EXT}@default)
exten => call,100,Macro(dial,60,${DIAL_OPTS},${FALLBACK_EXT})
exten => call,n,Macro(dial,999,${DIAL_OPTS},${BACKUP_EXT})


****** ADDITIONAL INFORMATION ******

#0  0xb798ceb6 in misdn_set_opt_exec (chan=0xb6046010, data=0xb306af10) at chan_misdn.c:5369
5369                            chan_misdn_log(1, ch->bc->port, "SETOPT: EchoCancel\n");

#0  0xb798ceb6 in misdn_set_opt_exec (chan=0xb6046010, data=0xb306af10) at chan_misdn.c:5369
       __r1 = 0 '\0'
       __r2 = <value optimized out>
       keys = '\0' <repeats 60 times>, "D\237\006³\001\000\000\000}\000ê·\000\000\000\000\"${DB(NEC/${EXTEN})}\"=\"-1\"\000·\034 \006³¿ðß·\003\000\000\000\030\000\000\000ÌÔê·\000\000\000\000\000\t\000\000\000\000\000\000\000\000\000\000U\201`\000¤\201\000\000\001", '\0' <repeats 23 times>, "J\003\000\000\000\000\000\000\000\020\000\000\b\000\000\000\000\000\000\000ÀF\024I\000\000\000\000;1\006I\000\000\000\000;1\006I\000\000\000\000U\201`\000\000\000\000\000\220\237\006³ïiÞ·ÀÔê·\017\000\000\000ô¿ê·\017\000\000\000}\000ê·°\237\006³\226¡Þ· Så"...
       key = <value optimized out>
       tmp = 0xb7f30017 "\201ÃÝ\177"
       i = <value optimized out>
       neglect = 1
       ch = <value optimized out>
       tok = 0xb306af11 "e"
       tokb = 0xb306af13 "vt0"
       rxgain = <value optimized out>
       txgain = <value optimized out>
       change_jitter = 0
       __PRETTY_FUNCTION__ = "misdn_set_opt_exec"
#1  0x080c45ac in pbx_exec (c=0xb6046010, app=0x81d9960, data=0xb306af10) at pbx.c:537
       res = -1214595284
       saved_c_appl = 0x81fe92c "ExecIf"
       saved_c_data = 0xb306cfb8 "1|misdn_set_opt|!e:vt0"
#2  0xb623cd52 in execif_exec (chan=0xb6046010, data=0xb306cfb8) at app_exec.c:184
       res = 0
       u = (struct ast_module_user *) 0x90ff368
       myapp = 0xb306af02 "misdn_set_opt"
       mydata = <value optimized out>
       app = <value optimized out>
       __PRETTY_FUNCTION__ = "execif_exec"
#3  0x080cdb97 in pbx_extension_helper (c=0xb6046010, con=0x0, context=0xb6046190 "misdn", exten=0xb60461e0 "156", priority=4, label=0x0,
   callerid=0xb6010c80 "0555123654", action=E_SPAWN) at pbx.c:537
       e = (struct ast_exten *) 0x89da7f0
       app = (struct ast_app *) 0x81fe918
       res = <value optimized out>
       q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xb6046190 "misdn"}
       passdata = "1|misdn_set_opt|!e:vt0", '\0' <repeats 8169 times>
       matching_action = 0
       __PRETTY_FUNCTION__ = "pbx_extension_helper"
#4  0x080cfb81 in __ast_pbx_run (c=0xb6046010) at pbx.c:2317
       waittime = <value optimized out>
       dst_exten = "@\222\017´\002\000\2004\177\000\000\001\000\000\000\000\000\000\000\000\024JÞ·ô¿ê·\020\000\000¶¨2q³<ó\006³2GÞ·\020\000\000¶¨2q³¬F\177¶¨2q³<Cq³\\ó\006³~9|¶¨2q³øÔê·\020\000\000\000ÈÔê·Á?Þ·¨2q³hó\006³Ø0ó·¨2q³\030ô\006³\232\206~¶èó\006³Á?Þ·U\000\000\000`\031׳Á?Þ·8'ê·\002\000\000\000hK\177¶\200'Þ·\000ô\006³\f\000\000\000èó\006\000Á?Þ·\025\000\000\000hK\177¶ô¿ê·ÀÔê·±\002\002\000èó\006³¾fÞ·ÀÔê·"...
       pos = 1
       digit = <value optimized out>
       found = 1
       res = 0
       error = <value optimized out>
       __PRETTY_FUNCTION__ = "__ast_pbx_run"
ASTERISK-1  0x080d0bde in pbx_thread (data=0xb6046010) at pbx.c:2621
No locals.
ASTERISK-2  0x08100100 in dummy_start (data=0xb432e980) at utils.c:912
       _buffer = {__routine = 0x806a8c0 <ast_unregister_thread>, __arg = 0xb306fbb0, __canceltype = 0, __prev = 0x0}
       ret = <value optimized out>
ASTERISK-3  0xb7f2e240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
ASTERISK-4  0xb7e4a49e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
Comments:By: crich (crich) 2008-11-10 01:40:54.000-0600

have you got a misdn trace for this situation? Probably the call has been hungup at the same time when you call misdn_set_opt. I believe either "ch" or "ch->bc" are NULL.

could you enter the following in gdb:

p ch
p ch->bc

By: Daniel Wagner (dwagner) 2008-11-10 01:54:34.000-0600

(gdb) p ch
$1 = <value optimized out>
(gdb) p ch->bc
Cannot access memory at address 0x12ac
(gdb)

By: Tilghman Lesher (tilghman) 2009-01-08 12:59:45.000-0600

dwagner:  You're going to need to recompile with DONT_OPTIMIZE in order for us to be able to help you.

By: Daniel Wagner (dwagner) 2009-01-09 02:31:43.000-0600

because of major problems with version 1.4 we decided to switch to version 1.2. sorry

By: Tilghman Lesher (tilghman) 2009-01-09 12:55:51.000-0600

Reporter cannot provide needed debugging information.