Summary: | ASTERISK-13042: crash after atxfer | ||
Reporter: | Daniel Wagner (dwagner) | Labels: | |
Date Opened: | 2008-11-10 08:32:00.000-0600 | Date Closed: | 2011-06-07 14:00:39 |
Priority: | Critical | Regression? | No |
Status: | Closed/Complete | Components: | Resources/res_features |
Versions: | Frequency of Occurrence | ||
Related Issues: | |||
Environment: | Attachments: | ( 0) bt.txt | |
Description: | after a transfer with * of a call the system crashed. ****** ADDITIONAL INFORMATION ****** #0 ast_bridge_call (chan=0x8b3af40, peer=0x8aa5070, config=0xb4e1cca8) at /usr/src/install-asterisk/asterisk-1.4.22-rc5/include/asterisk/strings.h:168 168 AST_INLINE_API( (gdb) bt full #0 ast_bridge_call (chan=0x8b3af40, peer=0x8aa5070, config=0xb4e1cca8) at /usr/src/install-asterisk/asterisk-1.4.22-rc5/include/asterisk/strings.h:168 featurecode = <value optimized out> sense = <value optimized out> f = <value optimized out> who = <value optimized out> chan_featurecode = '\0' <repeats 11 times> peer_featurecode = '\0' <repeats 11 times> orig_channame = "SIP/160-08ae2f10\000¯³\bÿÿÿÿ$Ëá´@¯³\b¸¯³\b@¯³\bèÊá´\1774\b\b¸¯³\bICÄ·`ê\000\000à\226c\bÀ©ç·\027ðï·\bËá´\1774\b\b" orig_peername = "Local/115@from-internal-xfer-0f2b,1\000\001\000\000\000\210Êá´0aÄ·\004\000\000\000pPª\b\210Êá´ä>\b\b\020Ëá´X3\030\b\020\224÷,q\f\b" res = <value optimized out> diff = <value optimized out> hasfeatures = <value optimized out> backup_config = {features_caller = {flags = 0}, features_callee = {flags = 0}, start_time = {tv_sec = 0, tv_usec = 0}, feature_timer = 0, timelimit = 0, play_warning = 0, warning_freq = 0, warning_sound = 0x0, end_sound = 0x0, start_sound = 0x0, firstpass = 0, flags = 0} bridge_cdr = (struct ast_cdr *) 0x8ae7de8 orig_peer_cdr = (struct ast_cdr *) 0x8ae60d0 __PRETTY_FUNCTION__ = "ast_bridge_call" #1 0xb7c43b46 in builtin_atxfer (chan=0xb5830b98, peer=0x8b3af40, config=0xb4e1de14, code=0xb4e1cee4 "*", sense=2, data=0x0) at res_features.c:887 transferer = (struct ast_channel *) 0x8b3af40 transferee = (struct ast_channel *) 0xb5830b98 transferer_real_context = <value optimized out> xferto = "115@from-internal-xfer", '\0' <repeats 233 times> res = <value optimized out> outstate = 4 newchan = (struct ast_channel *) 0x8aa5070 xferchan = <value optimized out> tobj = <value optimized out> bconfig = {features_caller = {flags = 4}, features_callee = {flags = 4}, start_time = {tv_sec = 1226306500, tv_usec = 207557}, feature_timer = 0, timelimit = 0, play_warning = 0, warning_freq = 0, warning_sound = 0x0, end_sound = 0x0, start_sound = 0x0, firstpass = 1, flags = 3} f = <value optimized out> features_datastore = <value optimized out> dialfeatures = (struct ast_dial_features *) 0x895ba80 __PRETTY_FUNCTION__ = "builtin_atxfer" #2 0xb7c3d334 in ast_feature_interpret (chan=0xb5830b98, peer=0x8b3af40, config=0xb4e1de14, code=0xb4e1cee4 "*", sense=2) at res_features.c:1155 x = <value optimized out> feature = <value optimized out> dynamic_features = 0x0 tmp = <value optimized out> tok = <value optimized out> res = 21 feature_detected = 1 __PRETTY_FUNCTION__ = "ast_feature_interpret" #3 0xb7c3d99e in ast_bridge_call (chan=0xb5830b98, peer=0x8b3af40, config=0xb4e1de14) at res_features.c:1626 featurecode = 0xb4e1cee4 "*" sense = 2 f = (struct ast_frame *) 0x0 who = (struct ast_channel *) 0x8b3af40 chan_featurecode = '\0' <repeats 11 times> peer_featurecode = "*\000\000\000\000\000\000\000\000\000\000" orig_channame = "mISDN/2-u196\000\000\b\b\024\017\203µ\030\017\203µ\001\000\000\000Хŷ\230\v\203µ\2108\226\b¸Îá´¬EÅ·\230\v\203µ\b\000\000\000\035\000\000\000\020\000\000\000¢à\237·\021\000\000\000øÎá´ìÎá´" orig_peername = "Local/160@from-internal-admin-20f7,1\000Äç·ðÒ®\bXÎá´27Û·ÀÄç·ðÒ®\bХŷ\230\v\203µðÒ®\b\b\000\000\000Хŷ" res = <value optimized out> diff = <value optimized out> hasfeatures = 0 backup_config = {features_caller = {flags = 0}, features_callee = {flags = 0}, start_time = {tv_sec = 0, tv_usec = 0}, feature_timer = 0, timelimit = 0, play_warning = 0, warning_freq = 0, warning_sound = 0x0, end_sound = 0x0, start_sound = 0x0, firstpass = 0, flags = 0} bridge_cdr = (struct ast_cdr *) 0x8ad3a10 orig_peer_cdr = (struct ast_cdr *) 0x8ac8440 __PRETTY_FUNCTION__ = "ast_bridge_call" ---Type <return> to continue, or q <return> to quit--- #4 0xb79fce67 in dial_exec_full (chan=0xb5830b98, data=<value optimized out>, peerflags=0xb4e1dee4, continue_exec=0x0) at app_dial.c:1780 toast = '\0' <repeats 79 times> config = {features_caller = {flags = 0}, features_callee = {flags = 2}, start_time = {tv_sec = 1226306479, tv_usec = 306385}, feature_timer = 0, timelimit = 0, play_warning = 0, warning_freq = 0, warning_sound = 0x0, end_sound = 0x0, start_sound = 0x0, firstpass = 0, flags = 2} res = 145653224 u = (struct ast_module_user *) 0x82e67d0 rest = 0x0 cur = <value optimized out> outgoing = (struct dial_localuser *) 0x0 peer = (struct ast_channel *) 0x8b3af40 to = 22393 numbusy = 0 numcongestion = 0 numnochan = 0 cause = 0 numsubst = "111\000ô¯ç·\000\000\000\000\000\000\000\000ÿÿÿÿ1\000\000\0001\000\000\000xÜá´$¨à·1\000\000\000tÖÚ7\001\000\000\000\000@ñ·1\000\000\000 ³ç· ³ç·¤Üá´\205ÓÚ·\024\004Û·\000\000\000\0001\000\000\000ô¯ç·\000\000\000\000\000\000\000\000\r\016Û·ÜÜá´åÔy\b#Õy\b`Þá´ô¯ç·ÜÜá´åÔy\bÈÝá´\201¯Ú·ÜÜá´>G\023\b`Þá´åÔy\b\000\000\000\000|Ýá´>\000\000\000\001\200ûåÔy\båÔy\båÔy\båÔy\bçÔy\b#Õy\båÔy\b#Õy\b"... cidname = '\0' <repeats 79 times> privdb_val = 0 calldurationlimit = 0 timelimit = 0 play_warning = 0 warning_freq = 0 warning_sound = 0x0 end_sound = 0x0 start_sound = 0x0 dtmfcalled = 0x0 dtmfcalling = 0x0 status = "ANSWER\000R\000GS", '\0' <repeats 244 times> play_to_caller = 0 play_to_callee = 0 sentringing = 0 moh = 1 outbound_group = 0x0 result = <value optimized out> start_time = <value optimized out> privintro = '\0' <repeats 84 times>, "\203ÿÚ·\000\000\000\000\000\000\000\000Î Ú·Ù\025\024\bÙ\025\024\b\001\000\000\000ô¯ç·Ø\025\024\b\001\000\000\000ÈÛá´_\237Ø·ìÛá´Ø\025\024\b\001", '\0' <repeats 15 times>, "4Ûá´\035\233Ø·\000\000\000\000\000\000\000\000 Ûá´", '\0' <repeats 40 times>, "(\000\000\000\000\000\000\000\200Üá´", '\0' <repeats 36 times>, "ÿÿÿÿ\033\000\000\000Ù\025\024\bÃ\025\024\b4Ûá´\006\000\000\000\035", '\0' <repeats 15 times>, "\n\000\000\0002Ûá´", '\0' <repeats 12 times>, "\203ÿÚ·\000\000\000\000\000\000\000\000Î Ú·@G"... privcid = '\0' <repeats 100 times>, "\234Òá´", '\0' <repeats 20 times>, "Nov 10 09:40:39\000Nov 10 09:39:29", '\0' <repeats 15 times>, "40", '\0' <repeats 14 times>, "40", '\0' <repeats 16 times>, "Nov 10 09:40:39\000iqÙ·äÜá´\000\000\000\000TÝá´iqÙ·ôÜá´\000\000\000\000dÝ40\000\000\000" opermode = 0 args = {argc = 3, argv = 0xb4e1de70, peers = 0xb4e1cf90 "SIP", timeout = 0xb4e1cf98 "60", options = 0xb4e1cf9b "tm(shstp_welcome", url = 0x0} opts = {flags = 525312} opt_args = {0xb4e1dee8 "\030\"â´\227Û\f\b\230\v\203µXÿá´Xÿá´o·\202µ\030\r\203µh\r\203µ\a", 0x80b3020 "\201Ä\214", 0x814fe88 "", 0x17 <Address 0x17 out of bounds>, 0xb4e1cf9e "shstp_welcome", 0x813473e "\r\n", 0x8136fb8 "Channel: %s\r\nContext: %s\r\nExtension: %s\r\nPriority: %d\r\nApplication: %s\r\nAppData: %s\r\nUniqueid: %s\r\n", 0xb4e1defc "o·\202µ\030\r\203µh\r\203µ\a", 0xb4e1dee8 "\030\"â´\227Û\f\b\230\v\203µXÿá´Xÿá´o·\202µ\030\r\203µh\r\203µ\a"} datastore = (struct ast_datastore *) 0x85a9200 ds_caller_features = <value optimized out> ds_callee_features = <value optimized out> caller_features = <value optimized out> fulldial = 0 num_dialed = 1 __PRETTY_FUNCTION__ = "dial_exec_full" ASTERISK-1 0xb79fd8d2 in dial_exec (chan=0xb5830b98, data=0xb4e1ff58) at app_dial.c:1834 peerflags = {flags = 524288} ASTERISK-2 0x080cdb97 in pbx_extension_helper (c=0xb5830b98, con=0x0, context=0xb5830d18 "macro-dial", exten=0xb5830d68 "s", priority=7, label=0x0, ---Type <return> to continue, or q <return> to quit--- callerid=0x868b9e0 "0555123123", action=E_SPAWN) at pbx.c:537 e = (struct ast_exten *) 0xb5f0e3d8 app = (struct ast_app *) 0x8190818 res = <value optimized out> q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xb5830d18 "macro-dial"} passdata = "SIP/111|60|tm(shstp_welcome)", '\0' <repeats 8163 times> matching_action = 0 __PRETTY_FUNCTION__ = "pbx_extension_helper" ASTERISK-3 0xb62df330 in _macro_exec (chan=0xb5830b98, data=<value optimized out>, exclusive=0) at app_macro.c:308 __r1 = 0 '\0' __r2 = <value optimized out> tmp2 = "\002\000\000\000ô¯ç·\214)â´ÿÿÿÿh)â´_\227Ø·\214)â´>G\023\b\002\000\000\000\000\000\000\000\203ÿÚ·ÄÔy\bt|\022\bÎ Ú·Y\237\022\bY\237\022\b@)â´ô¯ç·V\237\022\b\003\000\000\000¨)â´_\237Ø·Ì)â´V\237\022\b\003", '\0' <repeats 15 times>, "\024)â´ *â´\000\000\000\000\000\000\000\000\200)â´", '\0' <repeats 24 times>, "ÿÿÿÿ\002\000\000\000²=\023\b@G\023\b\000\000\000\000\001", '\0' <repeats 43 times>, "ÿÿÿÿ\234\000\000\000Y\237\022\b\r\237\022\b\024)â´\005", '\0' <repeats 19 times>, "\n"... cond = 0xb5f0e2f8 "${ds}" app = <value optimized out> app2 = 0x0 c = <value optimized out> e = (struct ast_exten *) 0xb5f0e3d8 s = <value optimized out> cur = <value optimized out> rest = 0x0 macro = <value optimized out> fullmacro = "macro-dial\000´P\000\000\000Ã\025\024\bcall,all", '\0' <repeats 51 times> varname = "ARG3\000\000\000\000ô¯ç·\027ðï·¸o\023\b¨.â´ïYÛ·¨.â´\027\000\000\000øâ(\büâ(\b¸o\023\bH/â´ 0\v\b\210þ\024\b\027\000\000\000À\025\025\b>G\023\b¸o\023\b\\/â´" runningapp = "Dial\000f\000\bçÔy\b=\000\000\000>G\023\bÀ.â´:\001\000\000\000\000\000\000\020\016\000\000\000\000\000\000\204.â´`ˬ\bðÉ\b\034\000\000\000>G\023\bx\001\000\000¨.â´ì\016\020\b4/â´\000\000\000" runningdata = "${ds}\000rties.agi\000= \"\"]?dial\000\bd\000\000\000Ä,â´Ð-â´\000\000\000\000\204-â´0-â´\000\000\000\000´\032\023\b\000\000\000\000\001\000\000\000_\237Ø·\000\000\000\000ÿÿÿÿ\002\000\000\000²=\023\b@G\023\bd\000\000\000\001", '\0' <repeats 19 times>, "\n\000\000\000\201,â´", '\0' <repeats 16 times>, "ÿÿÿÿ\235\000\000\000\033p\023\bÁo\023\bÄ,â´\006", '\0' <repeats 19 times>, "\n\000\000\000Á,â´", '\0' <repeats 42 times>, " s\016", '\0' <repeats 41 times>, " s.", '\0' <repeats 11 times>... oldargs = {0x0 <repeats 81 times>} argc = 4 x = <value optimized out> res = 0 oldexten = "call", '\0' <repeats 251 times> oldpriority = 100 gosub_level = 0 pc = "100\000AÈ\006\bÀÆÔ·\024:Û·\236\000\000\000\000\000\000\000P\000\000\000\000100\000\000\000\000Å5«\bÅ5«\b\000\000\000\000Å5«\b\033[1;À©ç·\000\000\000\000 --øÄç·á\000\000\000Ä\000\000" depthc = "1\000\000\000\000\000\000\000\000\000\000" oldcontext = "misdn", '\0' <repeats 74 times> inhangupc = <value optimized out> offset = <value optimized out> depth = 0 maxdepth = 7 setmacrocontext = 1 dead = <value optimized out> inhangup = 0 save_macro_exten = 0x0 save_macro_context = 0x0 save_macro_priority = 0x0 save_macro_offset = 0x0 u = (struct ast_module_user *) 0x85c88b0 __PRETTY_FUNCTION__ = "_macro_exec" ASTERISK-4 0x080cdb97 in pbx_extension_helper (c=0xb5830b98, con=0x0, context=0xb5830d18 "macro-dial", exten=0xb5830d68 "s", priority=100, label=0x0, callerid=0x868b9e0 "0555123123", action=E_SPAWN) at pbx.c:537 e = (struct ast_exten *) 0xb5f0c770 ---Type <return> to continue, or q <return> to quit--- app = (struct ast_app *) 0x81fa5a0 res = <value optimized out> q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xb5830d18 "macro-dial"} passdata = "dial|60|tm(shstp_welcome)|111", '\0' <repeats 8162 times> matching_action = 0 __PRETTY_FUNCTION__ = "pbx_extension_helper" ASTERISK-5 0x080cfb81 in __ast_pbx_run (c=0xb5830b98) at pbx.c:2317 waittime = <value optimized out> dst_exten = "\000\000\000\000\btâ´Èsâ´Ìsâ´\ftâ´\024:Û·", '\0' <repeats 32 times>, "\020tâ´\021\f\r\b\000\000\000\000\000\000\000\000ôoð·øÄç·\020\000\000\000ÈÄç·¼sâ´\000\000\000\000Àsâ´Äsâ´\000\000\000\000Ðsâ´Èsâ´Ìsâ´Ôsâ´\000\000\000\000\000\000\000\000Á/Û·\000\000\000\000\002\000\000\000\000\000\000\000\200\027Û·\000\000\000\000\f\000\000\000Øsâ\000Á/Û·\025\000\000\000\000\000\000\000ô¯ç·ÀÄç·±\f\002\000èsâ´¾VÛ·ÀÄç·\027ðï·ØÝª\bØY!\b±\f\002\000Pó\b\f\000"... pos = 1 digit = <value optimized out> found = 1 res = 0 error = <value optimized out> __PRETTY_FUNCTION__ = "__ast_pbx_run" ASTERISK-6 0x080d0bde in pbx_thread (data=0xb5830b98) at pbx.c:2621 No locals. ASTERISK-7 0x08100100 in dummy_start (data=0xb580ff20) at utils.c:912 _buffer = {__routine = 0x806a8c0 <ast_unregister_thread>, __arg = 0xb4e27bb0, __canceltype = 0, __prev = 0x0} ret = <value optimized out> ASTERISK-8 0xb7efd240 in start_thread () from /lib/tls/i686/cmov/libpthread.so.0 No symbol table info available. ASTERISK-9 0xb7e1949e in clone () from /lib/tls/i686/cmov/libc.so.6 No symbol table info available. (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) (gdb) exit Undefined command: "exit". Try "help". (gdb) quit ipefon006:~# exit exit Script done on Mo 10 Nov 2008 11:52:13 CET | ||
Comments: | By: Mark Michelson (mmichelson) 2008-11-11 15:35:54.000-0600 It's apparent that one of the calls to ast_copy_string inside of ast_bridge_call is causing a problem, but since the backtrace provided was from an optimized build, it's not possible to tell which one is the problem call. If possible, could you please select the DONT_OPTIMIZE option from menuselect under "Compiler Flags" and then recompile and reproduce the problem? Also, please upload backtraces as files if possible instead of posting them directly in the bug report. Thanks! By: Daniel Wagner (dwagner) 2008-11-12 02:20:14.000-0600 I've compiled asterisk with the DONT_OPTIMIZE flags. unfortunately after that I can't make an inbound call over mISDN. Should I do a "make clean" before I recompile asterisk with this flag? Pleas give me advice. Thanks! By: Mark Michelson (mmichelson) 2008-11-12 09:24:37.000-0600 That's odd. Typically you do not have to make clean when enabling this option. Can you verify that it is *only* the setting of that flag that caused inbound calls to stop functioning correctly? I just want to make sure there wasn't anything else that might have changed in your setup to warrant this new problem. One way to verify that it is only this setting which causes the problem would be to unselect the DONT_OPTIMIZE setting and recompile. See if you then can receive calls over mISDN. I'll ask around and see if anyone might know a particular reason why DONT_OPTIMIZE would cause failures with inbound mISDN calls. By: Daniel Wagner (dwagner) 2008-11-18 07:34:47.000-0600 The same error again! By: Leif Madsen (lmadsen) 2009-02-02 15:27:33.000-0600 Can you try with the latest 1.4 from SVN? There has been a lot of changes lately to transfers and such -- one of them may have fixed your issue! If not, then I would suggest you checkout the latest 1.4, and be sure to enable DONT_OPTIMIZE so we can get a useful backtrace. Thanks! By: Joshua C. Colp (jcolp) 2009-03-03 15:49:32.000-0600 Closed due to lack of response. Plus I've examined the code in question and see that a change was put in that should have fixed this. |