Rilawich Ango
2007-Oct-31 06:16 UTC
[asterisk-users] segfault - asterisk crash and restart
Hi all, Recently, I have upgraded the asterisk as following. asterisk-1.4.13 asterisk-addon-1.4.4 libpri-1.4.1 zaptel-1.4.5.1 Usage of the server: inbound and outbound call, queue, mixmonitor, meetme, moh After upgrade, the server get segfault randomly and asterisk crash and restart itself. I got 2 core dumps of the segfault. Based on the core dump, we can't figure out the root cause to the problem as the content of the core dump is not the same. We have no idea what the problem is. Anyone can give me some advices. --core dump 1-- (gdb) bt full #0 0x00000037e806e1f3 in _int_free () from /lib64/libc.so.6 No symbol table info available. #1 0x00000037e8071fac in free () from /lib64/libc.so.6 No symbol table info available. #2 0x000000000046b7b7 in ast_frame_free (fr=0x1b9da4b0, cache=0) at frame.c:369 No locals. #3 0x00002aaab1173573 in mixmonitor_thread (obj=0x1bb08220) from /usr/lib/asterisk/modules/app_mixmonitor.so next = (struct ast_frame *) 0x0 write = 1 mixmonitor = (struct mixmonitor *) 0x1bb08220 f = (struct ast_frame *) 0x1b9da4b0 fs = (struct ast_filestream *) 0x2aaac80f3b70 oflags = 577 ext = 0x1bb08466 "wav49" errflag = 0 __PRETTY_FUNCTION__ = "mixmonitor_thread" #4 0x00000000004d4b8f in dummy_start (data=0x1b949260) at utils.c:806 __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, 1063351100855877176, 0, 1094138176, 1080131584, 1094136400, 1063351100855877496, 1063351101953312135}, __mask_was_saved = 0}}, __pad = {0x413731c0, 0x0, 0x1b8f6dd0, 0x1b8f6dd0}} ---Type <return> to continue, or q <return> to quit--- __cancel_routine = (void (*)(void *)) 0x426a2b <ast_unregister_thread> __cancel_arg = (void *) 0x41373940 not_first_call = 0 ret = (void *) 0x37e8344898 a = {start_routine = 0x2aaab117330d <mixmonitor_thread>, data = 0x1bb08220, name = 0x1b892880 "mixmonitor_thread started at [ 301] app_mixmonitor.c launch_monitor_thread()"} lock_info = (struct thr_lock_info *) 0x1ba87c20 #5 0x00000037e8c061b5 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #6 0x00000037e80cd36d in clone () from /lib64/libc.so.6 No symbol table info available. #7 0x0000000000000000 in ?? () No symbol table info available. (gdb) --core dump 2-- Core was generated by `/usr/sbin/asterisk -f -vvvg -c'. Program terminated with signal 11, Segmentation fault. #0 0x000000000044da80 in ast_var_name (var=0x10f1d58a0) at chanvars.c:69 69 if (name[0] == '_') { (gdb) bt full #0 0x000000000044da80 in ast_var_name (var=0x10f1d58a0) at chanvars.c:69 name = 0x10f1d58b0 <Address 0x10f1d58b0 out of bounds> #1 0x000000000049948f in pbx_builtin_setvar_helper (chan=0xf460320, name=0x2aaabf53cbf7 "DIALSTATUS", value=0x417a0690 "BUSY") at pbx.c:5825 newvariable = (struct ast_var_t *) 0x10f1d58a0 headp = (struct varshead *) 0xf460880 nametail = 0x2aaabf53cbf7 "DIALSTATUS" __PRETTY_FUNCTION__ = "pbx_builtin_setvar_helper" #2 0x00002aaabf53938e in dial_exec_full (chan=0xf460320, data=0x417a2e50, peerflags=0x417a0c50, continue_exec=0x0) from /usr/lib/asterisk/modules/app_dial.so res = 0 u = (struct ast_module_user *) 0xf0e48d0 rest = 0x0 cur = 0x0 outgoing = (struct dial_localuser *) 0xf13eba0 peer = (struct ast_channel *) 0x0 to = 0 numbusy = 0 numcongestion = 0 numnochan = 0 cause = 0 numsubst = "4612 at 10.201.2.224\000??\000\00061?@ \017\000\000\000\000????\000\000\000\000?@ \017\000\000\000\000?@ \017\000\000\000\000`t4?7", '\0' <repeats 11 times>, "?\fzA\000\000\000\000\000\fzA\000\000\000\0006\000\000\000\000\000\000\000\000????*\000\0006", '\0' <repeats 15 times>, "?\206\006?7\000\000\000\000\000\000\000P\000\000\000`\2074?7\000\000\000@\rzA\000\000\000\000\020\nzA\000\000\000\000?-zA\000\000\000\000@?zA\000\000\000\000\000\200a@\000\000\000\000??\004?7\000\000\0000\000\000\0000\000\000\000?\tzA\000\000"... cidname = '\0' <repeats 79 times> privdb_val = 0 calldurationlimit = 0 timelimit = 1800000 play_warning = 120000 warning_freq = 0 warning_sound = 0x2aaabf53cd0a "timeleft" end_sound = 0x0 start_sound = 0x0 dtmfcalled = 0x0 dtmfcalling = 0x0 status = "BUSY\000WER\000GS", '\0' <repeats 244 times> play_to_caller = 1 play_to_callee = 0 sentringing = 0 moh = 0 outbound_group = 0x0 result = 0 start_time = 1193798657 privintro = "\001\000\000\000\000\000\000\000@\tzA\000\000\000\000?LR\000\000\000\000\000?LR\000\000\000\000\000\f\000\000\000\000\000\000\000?4\004?7\000\000\000s\000\000\000\001\000\000\000\000\tzA\000\000\000\000tpR\000\000\000\000\000 \---Type <return> to continue, or q <return> to quit--- 004zA\000\000\000\000?\vzA\000\000\000\000\230LR\000\000\000\000\000P\tzA", '\0' <repeats 12 times>, " ", '\0' <repeats 23 times>, "????????\000\000\000\000?\000\000\000?LR", '\0' <repeats 13 times>, "\b\bzA\000\000\000\000\230?R\000\006", '\0' <repeats 15 times>, "\n", '\0' <repeats 43 times>, " \vzA\000\000\000\000\203?R\000\000\000\000\000"... privcid = "p\nzA\000\000\000\000`pRd\000\000\000\000\000\bzA", '\0' <repeats 36 times>, "????????\003?\027?\"\000\000\000mpR", '\0' <repeats 13 times>, "?\006zA\000\000\000\000?\tzA\002", '\0' <repeats 15 times>, "\n\000\000\000\002", '\0' <repeats 11 times>, "\001\000\000\000\000\000\000\000\002\000\000\000\227?R", '\0' <repeats 13 times>, " \000\000\000\000\000\000\000?4\004?7", '\0' <repeats 11 times>, "\200\bzd\000\000\000\00048\000\000????\000\000\000\000\000\000\000\000?\016Q\000\000\000\000\000`pR\000\000\000\000\000?\bzA", '\0' <repeats 20 times>, "?"... parse = 0x4179fa90 "SIP" opermode = 0 args = {argc = 3, argv = 0x417a0158, peers = 0x4179fa90 "SIP", timeout = 0x4179faa6 "35", options = 0x4179faa9 "L(1800000", url = 0x0} opts = {flags = 1049088} opt_args = {0x20 <Address 0x20 out of bounds>, 0x417a0740 "", 0x0, 0x4179faab "1800000", 0x1b417a08f0 <Address 0x1b417a08f0 out of bounds>, 0x52f983 "%c[%d;%sm%s%c[0;%d;%dm", 0x0, 0x417a0608 "\220?u", 0x600000002 <Address 0x600000002 out of bounds>} __PRETTY_FUNCTION__ = "dial_exec_full" #3 0x00002aaabf539494 in dial_exec (chan=0xf460320, data=0x417a2e50) from /usr/lib/asterisk/modules/app_dial.so peerflags = {flags = 0} #4 0x000000000048a004 in pbx_exec (c=0xf460320, app=0x2aaaac00aeb0, data=0x417a2e50) at pbx.c:532 res = 0 saved_c_appl = 0xf0c1518 "Macro" saved_c_data = 0x417a6330 "outbound" #5 0x000000000048e095 in pbx_extension_helper (c=0xf460320, con=0x0, context=0xf460698 "macro-outbound", exten=0xf4606e8 "s", priority=61, label=0x0, callerid=0xf198f10 "6465956167", action=E_SPAWN) at pbx.c:1833 e = (struct ast_exten *) 0x2aaaac052cb0 app = (struct ast_app *) 0x2aaaac00aeb0 res = 1098536976 q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xf460698 "macro-outbound"} passdata = "SIP/4612 at 10.201.2.224|35|L(1800000:120000)T", '\0' <repeats 8148 times> matching_action = 0 __PRETTY_FUNCTION__ = "pbx_extension_helper" #6 0x000000000048f472 in ast_spawn_extension (c=0xf460320, context=0xf460698 "macro-outbound", exten=0xf4606e8 "s", priority=61, callerid=0xf198f10 "6465956167") at pbx.c:2288 No locals. #7 0x00002aaac260a617 in _macro_exec (chan=0xf460320, data=0x417a6330, exclusive=0) from /usr/lib/asterisk/modules/app_macro.so c = (struct ast_context *) 0x2aaaac050c70 e = (struct ast_exten *) 0x2aaaac052cb0 s = 0xf2bd15c "1" tmp = 0x417a5320 "outbound" cur = 0x0 rest = 0x0 macro = 0x417a5320 "outbound" fullmacro = "macro-outbound\000\000@?zA\000\000\000\000\000\200a@\000\000\000\000pbzA\000\000\000\000\r?G", '\0' <repeats 21 times>, "?VH\000\000\000\000\000\v?G\000\000\000\000" ---Type <return> to continue, or q <return> to quit--- varname = "0gzA\000\000\000\000\000\000\000\000\n\026\000\000\033[1;30;4\t\000\000\000\000\000\000\000??Q\000\000\000\000\000??Q\000\000\000\000\000??u\000\000\000\000\000??Q\000\000\000\000\000??Q\000\000\000\000\000?@ \017z\003\000" runningapp = "Dial\000f\000e\000\200a@\000\000\000\000P?zA\000\000\000\000?@ \017\000\000\000\000`\2074?7\000\000\000??u\000\000\000\000\000P?D\017\000\000\000\000?\234B\000\000\000\000\000?`zA\000\000\000\000??G\000\000\000\000" runningdata = "SIP/${fromsip_sippeers_hostid}${billsip_rt_routeprefix}${tosip}@${outbound_${billsip_rt_gw}}|${RINGTIMEOUT}|L(${availCallLimit}:120000)${DialOpt}\000zA\000\000\000\000\000\200a@\000\000\000\000P?zA\000\000\000\000?FM\000\000\000\000\000P?zA\000\000\000\000\020]zA", '\0' <repeats 12 times>, "?`"... oldargs = {0x0 <repeats 81 times>} argc = 1 x = 1098539312 res = 0 oldexten = "4612", '\0' <repeats 251 times> oldpriority = 4 gosub_level = 0 pc = "4\000\000\000\001", '\0' <repeats 11 times>, "?]zA\000\000\000\000?(R)\006?7\000\000\000\003\000\000\000\000\000\000\000\000_zA\000\000\000\000\025?B??*\000\000\030?B??*\000\000\034\000\000\000\000\000\000\000?4\004?7\000\000" depthc = "1\000&\017\000\000\000\000?\\\025?" oldcontext = "sipcom", '\0' <repeats 73 times> inhangupc = 0x0 offset = 0 depth = 0 maxdepth = 7 setmacrocontext = 1 autoloopflag = 512 dead = 0 inhangup = 0 save_macro_exten = 0x0 save_macro_context = 0x0 save_macro_priority = 0x0 save_macro_offset = 0x0 u = (struct ast_module_user *) 0xf1225c0 __PRETTY_FUNCTION__ = "_macro_exec" #8 0x00002aaac260b350 in macro_exec (chan=0xf460320, data=0x417a6330) from /usr/lib/asterisk/modules/app_macro.so No locals. #9 0x000000000048a004 in pbx_exec (c=0xf460320, app=0xf0c14f0, data=0x417a6330) at pbx.c:532 res = 0 saved_c_appl = 0x0 saved_c_data = 0x0 #10 0x00002aaab142cabd in realtime_exec (chan=0xf460320, context=0xf460698 "macro-outbound", exten=0xf4606e8 "s", priority=4, callerid=0xf198f10 "6465956167", data=0x2aaaac08eae9 "sipcom at extensions") from /usr/lib/asterisk/modules/pbx_realtime.so appdata = "outbound", '\0' <repeats 503 times> tmp1 = "\033[1;36;40mMacro\033[0;37;40m\000M\000\000\000\000\000P?zA\000\000\000\000??u\000\000\000\000\000P?D\017\000\000\000\000??\b?\000\000\000\000 at hzA\000\000\000\000y?H\000\000\000\000" tmp2 = "\033[1;35;40mLocal/4612 at sipauth-88ac,2\033[0;37;40m\000\000\000\230\006F\017\000\000\000\000@?zA\000\000\000\000?gzA", '\0' <repeats 11 times> tmp3 = "\033[1;35;40moutbound\033[0;37;40m\000*\000\000\000fzA", '\0' <repeats 12 times>, "\020fzA", '\0' <repeats 1---Type <return> to continue, or q <return> to quit--- 6 times>, "\004\000\000\000?\006F\017\000\000\000\000PfzA\000\000\000\000WfzA\000\000\000\0004612", '\0' <repeats 108 times>, "4\000\000\000\000\000\000\000?\234B\000\000\000\000\0001\000zA\000\000\000\000\220\232\035\017\000\000\000\000`V\033\017\000\000\000\000S?B??*\000" a = (struct ast_app *) 0xf0c14f0 tmp = 0x417a62a0 "outbound" app = "Macro\000\000\000\020?\"\017\000\000\000\000 gzA\000\000\000\000~?B??*\000\000sipcom\000extensions\000zA\000\000\000\000?&M", '\0' <repeats 13 times>, "@?zA\000\000\000\000??\b??*\000\000`\2314?7\000\000\000 gzA", '\0' <repeats 12 times>, "@?zA\000\000\000\000\000\200a@\000\000\000\000P?zA\000\000\000\000?\037\a?7\000\000\000?\006F\017\000\000\000\000\230\006F\017\000\000\000\000PfzA\000\000\000\000WfzA\000\000\000\000\220\232\035\017", '\0' <repeats 12 times>, " gzA\000\000\000\000\237RE\000\000\000\000"... v = (struct ast_variable *) 0x0 res = -1 var = (struct ast_variable *) 0xf16aa30 __PRETTY_FUNCTION__ = "realtime_exec" #11 0x000000000048e18e in pbx_extension_helper (c=0xf460320, con=0x0, context=0xf460698 "macro-outbound", exten=0xf4606e8 "s", priority=4, label=0x0, callerid=0xf198f10 "6465956167", action=E_SPAWN) at pbx.c:1844 e = (struct ast_exten *) 0x0 app = (struct ast_app *) 0x0 res = 1098561856 q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 2, swo = 0x2aaab162d5c0, data = 0x2aaaac08eae9 "sipcom at extensions", foundcontext = 0xf460698 "macro-outbound"} passdata = '\0' <repeats 784 times>, "\016i???*\000\000:\215zA\000\000\000\000`\236zA\000\000\000\000'?H", '\0' <repeats 37 times>, "CDR\000userfield", '\0' <repeats 524 times>, "\226zA\000\000\000\000\032\027\031??*\000\000\032\027\031??*\000\000\000\000\000\000\000\000\000\000?4\004?7", '\0' <repeats 11 times>, "?\225zA", '\0' <repeats 12 times>, "?\220zA\000\000\000\000p\227zA\000\000\000\000\030\027\031??*\000\000\020\226zA", '\0' <repeats 36 times>, "????????\000\000\000\000\001\000\000\000\030\027\031??*\000\000\000\000\000\000\000\000\000\000"... matching_action = 0 __PRETTY_FUNCTION__ = "pbx_extension_helper" #12 0x000000000048f472 in ast_spawn_extension (c=0xf460320, context=0xf460698 "macro-outbound", exten=0xf4606e8 "s", priority=4, callerid=0xf198f10 "6465956167") at pbx.c:2288 No locals. #13 0x000000000048f9ca in __ast_pbx_run (c=0xf460320) at pbx.c:2388 dst_exten = "\000\000\000\000\000\000\000 at P\fS\000\000\000\000\000 \b\a?\226\000\000\000h\fS\000\000\000\000\000?\003", '\0' <repeats 14 times>, "P?zA", '\0' <repeats 12 times>, "@?zA\000\000\000\0006'M", '\0' <repeats 21 times>, "@?zA\000\000\000\000?&M", '\0' <repeats 13 times>, "@?zA\000\000\000\000 ?zA", '\0' <repeats 12 times>, "@?zA\000\000\000\000\000\200a@\000\000\000\000P?zA\000\000\000\000>\000\000\000\000\000\000\000P?zA\000\000\000\000?'u\000\000\000\000\000P?D\017\000\000\000\000P?D\017\000\000\000\000 ?zA\000\000\000\000\203gB", '\0' <repeats 13 times>... pos = 0 digit = 0 found = 1 res = 0 autoloopflag = 0 error = 0 __PRETTY_FUNCTION__ = "__ast_pbx_run" #14 0x0000000000490881 in pbx_thread (data=0xf460320) at pbx.c:2603 c = (struct ast_channel *) 0xf460320 #15 0x00000000004d4b8f in dummy_start (data=0xf0df2b0) at utils.c:806 ---Type <return> to continue, or q <return> to quit--- __cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {0, 7386728462901403642, 0, 1098561856, 1080131584, 1098560080, 7386728462901403322, 7386728463961859141}, __mask_was_saved = 0}}, __pad = {0x417ab1c0, 0x0, 0xf36c870, 0xf36c870}} __cancel_routine = (void (*)(void *)) 0x426a2b <ast_unregister_thread> __cancel_arg = (void *) 0x417ab940 not_first_call = 0 ret = (void *) 0x37e8344898 a = {start_routine = 0x490864 <pbx_thread>, data = 0xf460320, name = 0xf3204d0 "pbx_thread", ' ' <repeats 11 times>, "started at [ 2627] pbx.c ast_pbx_start()"} lock_info = (struct thr_lock_info *) 0xf44e150 #16 0x00000037e8c061b5 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #17 0x00000037e80cd36d in clone () from /lib64/libc.so.6 No symbol table info available. #18 0x0000000000000000 in ?? () No symbol table info available. (gdb) exit
Rilawich Ango wrote:> Hi all, > > Recently, I have upgraded the asterisk as following. > asterisk-1.4.13 > asterisk-addon-1.4.4 > libpri-1.4.1 > zaptel-1.4.5.1 > Usage of the server: inbound and outbound call, queue, mixmonitor, meetme, moh > After upgrade, the server get segfault randomly and asterisk crash > and restart itself. I got 2 core dumps of the segfault. Based on the > core dump, we can't figure out the root cause to the problem as the > content of the core dump is not the same. We have no idea what the > problem is. Anyone can give me some advices. > > --core dump 1-- > (gdb) bt full > #0 0x00000037e806e1f3 in _int_free () from /lib64/libc.so.6 > No symbol table info available. > #1 0x00000037e8071fac in free () from /lib64/libc.so.6 > No symbol table info available. > #2 0x000000000046b7b7 in ast_frame_free (fr=0x1b9da4b0, cache=0) > at frame.c:369 > No locals. > #3 0x00002aaab1173573 in mixmonitor_thread (obj=0x1bb08220) > from /usr/lib/asterisk/modules/app_mixmonitor.soThis is clearly mixmonitor-related. I suggest you to look for similar mixmonitor bugs in digium's mantis - if there's none, create and attach this backtrace. [snip]> --core dump 2-- > > Core was generated by `/usr/sbin/asterisk -f -vvvg -c'. > Program terminated with signal 11, Segmentation fault. > #0 0x000000000044da80 in ast_var_name (var=0x10f1d58a0) at chanvars.c:69 > 69 if (name[0] == '_') { > (gdb) bt full > #0 0x000000000044da80 in ast_var_name (var=0x10f1d58a0) at chanvars.c:69 > name = 0x10f1d58b0 <Address 0x10f1d58b0 out of bounds> > #1 0x000000000049948f in pbx_builtin_setvar_helper (chan=0xf460320, > name=0x2aaabf53cbf7 "DIALSTATUS", > value=0x417a0690 "BUSY") at pbx.c:5825 > newvariable = (struct ast_var_t *) 0x10f1d58a0 > headp = (struct varshead *) 0xf460880 > nametail = 0x2aaabf53cbf7 "DIALSTATUS" > __PRETTY_FUNCTION__ = "pbx_builtin_setvar_helper"Great, this confirms that i'm not the only one having this problem. Can you please add this to http://bugs.digium.com/view.php?id=10923 As from my knowledge - this will happen often on 1.4.13.. The safe version i'm using is 1.4.10, but 1.4.12.1 already have this problem.. Regards, Atis
Reasonably Related Threads
- file.c:1160 ast_writefile: Unable to open file /var/spool/asterisk/monitor/11Feb2014/_11-Feb-2014-17-44-01.wav: No such file or directory
- crash
- my asterisk crashed
- [Bug 85570] New: DPMS does not turn off LCD backlight on G73 (NV4B) [GeForce 7600 GS]
- Segmentation Fault Asterisk 13.7.0-rc2 (libmysqlclient?)