[Home]

Summary:ASTERISK-13042: crash after atxfer
Reporter:Daniel Wagner (dwagner)Labels:
Date Opened:2008-11-10 08:32:00.000-0600Date Closed:2011-06-07 14:00:39
Priority:CriticalRegression?No
Status:Closed/CompleteComponents: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.