[Home]

Summary:ASTERISK-14105: Segfault on Transfer
Reporter:Barry Flanagan (barryf)Labels:
Date Opened:2009-05-11 07:40:19Date Closed:2009-05-20 12:35:12
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Core/PBX
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:The following is the backtrace. Occurred whith a chan_unistim device using the ATXFR on the phone, rather  than the asterisk feature code.

#0  0x080c205d in ast_bridge_call (chan=0xaff2eb40, peer=0x88ece88, config=0xae96420c) at features.c:2292
2292 chan_cdr->answer = peer_cdr->answer;
(gdb) bt full
#0  0x080c205d in ast_bridge_call (chan=0xaff2eb40, peer=0x88ece88, config=0xae96420c) at features.c:2292
f = (struct ast_frame *) 0x0
who = (struct ast_channel *) 0x0
chan_featurecode = '\0' <repeats 11 times>
peer_featurecode = '\0' <repeats 11 times>
orig_channame = "Local/3509@from-internal-fb56;2\000\001\000\000\000H@\226??\235??\000\000\000\000?Oq?X@\226?\017?\b\b?????Oq?\210@\226??}\t\b\210?\216\b"
orig_peername = "SIP/Imagine4-0890e850\000\226?????\000\000\000\200??????\226??\235???I??Oq?\b@\226?\0370\017\b????\000?\002?\000\000\000\000?D\020\b,`?"
res = 0
diff = 0
hasfeatures = 0
hadfeatures = 0
autoloopflag = 0
aoh = (struct ast_option_header *) 0xb7dab951
backup_config = {features_caller = {flags = 0}, features_callee = {flags = 0}, start_time = {tv_sec = 0, tv_usec = 0}, nexteventts = {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, end_bridge_callback = 0, end_bridge_callback_data = 0x0, end_bridge_callback_data_fixup = 0}
bridge_cdr = (struct ast_cdr *) 0x8985a38
orig_peer_cdr = (struct ast_cdr *) 0x894be00
chan_cdr = (struct ast_cdr *) 0x0
peer_cdr = (struct ast_cdr *) 0x894be00
new_chan_cdr = (struct ast_cdr *) 0x0
new_peer_cdr = (struct ast_cdr *) 0x0
__PRETTY_FUNCTION__ = "ast_bridge_call"
#1  0xb670e622 in dial_exec_full (chan=0xaff2eb40, data=0xae966f08, peerflags=0xae964bec, continue_exec=0x0) at app_dial.c:1937
number = 0x85f82a1 "Imagine4/1800938888"
res = 0
rest = 0x0
cur = 0x0
outgoing = (struct chanlist *) 0x0
peer = (struct ast_channel *) 0x88ece88
to = 296163
num = {chan = 0xaff2eb40, busy = 0, congestion = 0, nochan = 0}
cause = 0
numsubst = "Imagine4/1800938888", '\0' <repeats 45 times>, "Q??", '\0' <repeats 20 times>, "FM\000\b\020K\226\005\000\000\000\000\001", '\0' <repeats 19 times>, "\020?\016?X@\017?0?\016?\020\000\000\000\000\000\000\000\022\000\000\000\024K\226??\206j\b\200K\226?\000\000\000\000\n\000\000\000\000\000\000\000\200C??\220~??(K\226??N\226??E\017\b\2006\017?$\000\000\000XK\226?FM\020\b\200K\226?)\000\000\000\000\000\000\000?K\226??I?\000\000\000\000:\000\000\000????@Q??\023\000\000\000\000\000\000\000???,`"...
cidname = '\0' <repeats 79 times>
config = {features_caller = {flags = 0}, features_callee = {flags = 0}, start_time = {tv_sec = 1242039676, tv_usec = 359937}, nexteventts = {
   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 = 1, flags = 0, end_bridge_callback = 0xb6709f05 <end_bridge_callback>, end_bridge_callback_data = 0xaff2eb40,
 end_bridge_callback_data_fixup = 0xb670a093 <end_bridge_callback_data_fixup>}
calldurationlimit = 0
dtmfcalled = 0x0
dtmfcalling = 0x0
pa = {sentringing = 1, privdb_val = 0, privcid = '\0' <repeats 255 times>, privintro = '\0' <repeats 1023 times>,
 status = "ANSWER\000R\000GS", '\0' <repeats 244 times>}
sentringing = 0
moh = 0
outbound_group = 0x886c61f "OUT_6"
---Type <return> to continue, or q <return> to quit---
result = 0
parse = 0xae9640f0 "SIP"
opermode = 0
args = {argc = 3, argv = 0xae964280, peers = 0xae9640f0 "SIP", timeout = 0xae964108 "300", options = 0xae96410c "", url = 0x0}
opts = {flags = 0}
opt_args = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}
datastore = (struct ast_datastore *) 0x8824b78
fulldial = 0
num_dialed = 1
__PRETTY_FUNCTION__ = "dial_exec_full"
#2  0xb670eca8 in dial_exec (chan=0xaff2eb40, data=0xae966f08) at app_dial.c:1993
peerflags = {flags = 4294967296}
#3  0x080ee5ae in pbx_exec (c=0xaff2eb40, app=0xb6e0c9a0, data=0xae966f08) at pbx.c:948
res = -1258098688
u = (struct ast_module_user *) 0x86a86e8
saved_c_appl = 0xb70c278c "Macro"
saved_c_data = 0xae96c068 "dialout-trunk,6,1800938888,,"
__PRETTY_FUNCTION__ = "pbx_exec"
#4  0x080f54f6 in pbx_extension_helper (c=0xaff2eb40, con=0x0, context=0xaff2ecc8 "macro-dialout-trunk", exten=0xaff2ed18 "s", priority=19, label=0x0,
   callerid=0x85da5e8 "@(\203\b`q\205\b\020", action=E_SPAWN, found=0xae969218, combined_find_spawn=1) at pbx.c:3117
e = (struct ast_exten *) 0xb70f4058
app = (struct ast_app *) 0xb6e0c9a0
res = 0
q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xaff2ecc8 "macro-dialout-trunk"}
passdata = "SIP/Imagine4/1800938888,300,\000tmusic^))\000??y?-~\226??jj?%\000\000\000R~\226?\006\000\000\000GT-Outbound,1242039640.2890,Agent/6042,COMPLETEAGENT,21|11|\000????\224v\226?\024v\226??u\226?????5\003\000\000Cbi????????\000\000\000\000mbi??u\226????\000v\226?mbi?\024u\226?\000\000\000\000\000\000\000\000Tv\226?"...
matching_action = 0
__PRETTY_FUNCTION__ = "pbx_extension_helper"
ASTERISK-1  0x080f697a in ast_spawn_extension (c=0xaff2eb40, context=0xaff2ecc8 "macro-dialout-trunk", exten=0xaff2ed18 "s", priority=19,
   callerid=0x85da5e8 "@(\203\b`q\205\b\020", found=0xae969218, combined_find_spawn=1) at pbx.c:3620
No locals.
ASTERISK-2  0xb71a370e in _macro_exec (chan=0xaff2eb40, data=0xae96c068, exclusive=0) at app_macro.c:329
c = (struct ast_context *) 0xb70edf30
e = (struct ast_exten *) 0xb70f4058
foundx = 1
s = 0x8432744 "0"
tmp = 0xae969020 "dialout-trunk"
cur = 0x0
rest = 0x0
macro = 0xae969020 "dialout-trunk"
fullmacro = "macro-dialout-trunk\000\200~??\004\000\000\000?\234\226??\235??(k\032\b\220~??\b\235\226?\231?\r\b(k\032\b\004\000\000\000(\235\226???\r\b(k\032\b\220~??(\235\226?"
varname = "ARG4\000?\226??;N\b\020", '\0' <repeats 23 times>, "?I?\000\000\000\000t??????@Q??\004\000\000\000\000\000\000\000???,`?\b\000\000\000KL\000"
runningapp = "Dial\000f\000\000\000\000\000\000??T\b\000\000\000\000\030<N\b??T\b\020\000\000\000\000\000\000\000@???\000\000\000\000H\236V\b \234\226?", '\0' <repeats 24 times>, "P?\226?"
runningdata = "${OUT_${DIAL_TRUNK}}/${OUTNUM},300,${DIAL_TRUNK_OPTIONS}\000?Set(DIAL_TRUNK_OPTIONS=M(setmusic^${MOHCLASS})${DIAL_TRUNK_OPTIONS})\000\000\000\000\000\000\004", '\0' <repeats 103 times>, "????\000\000\000\000\030<N\b`???\000\000\000\000\002", '\0' <repeats 99 times>, "from-internal-xfer", '\0' <repeats 239 times>...
oldargs = {0x0 <repeats 81 times>}
argc = 5
---Type <return> to continue, or q <return> to quit---
x = 0
res = 0
oldexten = "1800938888", '\0' <repeats 245 times>
oldpriority = 4
gosub_level = 0
pc = "4", '\0' <repeats 39 times>, "Q??", '\0' <repeats 24 times>, "_NODEST\000\000\000\000"
depthc = "1\000\r\b?\\\f?\000\000\000"
oldcontext = "from-internal-callcentre-imbiz", '\0' <repeats 49 times>
inhangupc = 0x0
offset = 0
depth = 0
maxdepth = 7
setmacrocontext = 1
autoloopflag = 512
inhangup = 0
save_macro_exten = 0x0
save_macro_context = 0x0
save_macro_priority = 0x0
save_macro_offset = 0x0
macro_store = (struct ast_datastore *) 0x8792f48
__PRETTY_FUNCTION__ = "_macro_exec"
ASTERISK-3  0xb71a4956 in macro_exec (chan=0xaff2eb40, data=0xae96c068) at app_macro.c:492
No locals.
ASTERISK-4  0x080ee5ae in pbx_exec (c=0xaff2eb40, app=0xb70c2778, data=0xae96c068) at pbx.c:948
res = -1258098688
u = (struct ast_module_user *) 0x8569e48
saved_c_appl = 0x0
saved_c_data = 0x0
__PRETTY_FUNCTION__ = "pbx_exec"
ASTERISK-5  0x080f54f6 in pbx_extension_helper (c=0xaff2eb40, con=0x0, context=0xaff2ecc8 "macro-dialout-trunk", exten=0xaff2ed18 "s", priority=4, label=0x0,
   callerid=0x85da5e8 "@(\203\b`q\205\b\020", action=E_SPAWN, found=0xae96e1b8, combined_find_spawn=1) at pbx.c:3117
e = (struct ast_exten *) 0x84e3c18
app = (struct ast_app *) 0xb70c2778
res = 0
q = {incstack = {0x854bc00 "from-internal-callcentre-imbiz", 0xb6e4fa20 "from-internal", 0xb6e4ccc0 "from-internal-xfer",
   0x854ef70 "from-internal-custom", 0xb70cf640 "queuemetrics", 0xb709d6b8 "nortel_phones", 0xb6e66c08 "parkedcalls", 0xb6e5f518 "ext-fax",
   0xb6e54828 "ext-local-confirm", 0xb6e56258 "findmefollow-ringallv2", 0x851a9c8 "from-internal-additional", 0xb7a18ab0 "ext-queues",
   0xb7ab99f8 "app-recordings", 0xb7aefc20 "app-dnd-off", 0xb7af5630 "app-dnd-on", 0xb7afaff0 "app-dnd-toggle", 0xb70026e0 "ext-dnd-hints",
   0x8405f48 "app-echo-test", 0x84085d0 "app-speakextennum", 0x840bf90 "app-speakingclock", 0x84122d8 "app-dialvm", 0x841b4b8 "app-vmmain",
   0x84202a0 "app-fmf-toggle", 0x8427eb0 "ext-findmefollow", 0xb7ab7008 "fmgrps", 0xb70009f0 "app-miscapps-2", 0xb7001cd0 "app-miscapps-1",
   0x83fbea8 "app-userlogonoff", 0x83f8b28 "ext-local", 0x84c1070 "outbound-allroutes", 0x85628f8 "outbound-allroutes-custom", 0x0 <repeats 97 times>},
 stacklen = 31, status = 5, swo = 0x0, data = 0x0, foundcontext = 0xb70d658f "outrt-001-Outbound"}
passdata = "dialout-trunk,6,1800938888,,", '\0' <repeats 85 times>, "ueuelog,1242039672,1242039640.2890,GT-Outbound,Agent/6042,COMPLETEAGENT,21,11\000^GT-Outbound^Agent/6042^1242039640)", '\0' <repeats 1586 times>, "??\016\b`?\226?\bl??", '\0' <repeats 12 times>, "????\000\000\000\000\000\000\000\000?k??\000"...
matching_action = 0
__PRETTY_FUNCTION__ = "pbx_extension_helper"
ASTERISK-6 0x080f697a in ast_spawn_extension (c=0xaff2eb40, context=0xaff2ecc8 "macro-dialout-trunk", exten=0xaff2ed18 "s", priority=4,
   callerid=0x85da5e8 "@(\203\b`q\205\b\020", found=0xae96e1b8, combined_find_spawn=1) at pbx.c:3620
No locals.
ASTERISK-7 0x080f70b1 in __ast_pbx_run (c=0xaff2eb40, args=0x0) at pbx.c:3707
dst_exten = "\000\000\000\000?I?\026\000\000\000\000\000\000\000????", '\0' <repeats 12 times>, "?\235??,`??\037??KL\000\000\000\000\000\000\001\00---Type <return> to continue, or q <return> to quit---
0\000\000\000\000\000\000,?\027\b????\000\000\000\000\000\000\000\000\030?\226??\235??<\230\032\b?\037??(?\226?\0370\017\b<\230\032\b\200?\226???\226?\231\203\017\b<\230\032\b\000?\002?\b?\226?\021?\t\b\002\000\000\000\223?\027\b\024\211\027\b(\021\000\000\035?\027\b,?\027\b\220~??\004\000\000\000l\227\027\b@???p\f??\200~???\232?\000\000\000@\000\000\000\000\200~??\000\000\000\0000\033"...
pos = 0
digit = 0
found = 1
res = 0
autoloopflag = 0
error = 0
__PRETTY_FUNCTION__ = "__ast_pbx_run"
ASTERISK-8 0x080f85c3 in ast_pbx_run_args (c=0xaff2eb40, args=0x0) at pbx.c:4018
res = AST_PBX_SUCCESS
ASTERISK-9 0x080f85ef in ast_pbx_run (c=0xaff2eb40) at pbx.c:4027
No locals.
ASTERISK-10 0xb6bfdf82 in unistim_ss (data=0xaff2eb40) at chan_unistim.c:2013
chan = (struct ast_channel *) 0xaff2eb40
sub = (struct unistim_subchannel *) 0xb5324808
l = (struct unistim_line *) 0xb70d8b00
s = (struct unistimsession *) 0x8287238
res = 351
__PRETTY_FUNCTION__ = "unistim_ss"
ASTERISK-11 0x08148f05 in dummy_start (data=0xb534c940) at utils.c:861
__cancel_buf = {__cancel_jmp_buf = {{__cancel_jmp_buf = {-1210896396, 0, 0, -1365843000, 673628215, 754822010}, __mask_was_saved = 0}}, __pad = {
   0xae96e490, 0x0, 0xb8053260, 0xb7dab42e}}
__cancel_routine = (void (*)(void *)) 0x80754be <ast_unregister_thread>
__cancel_arg = (void *) 0xae96eb90
not_first_call = 0
ret = (void *) 0xb7d232f0
a = {start_routine = 0xb6bfde4e <unistim_ss>, data = 0xaff2eb40,
 name = 0xb5323678 "unistim_ss", ' ' <repeats 11 times>, "started at [ 2417] chan_unistim.c HandleCallOutgoing()"}
ASTERISK-12 0xb7d2350f in start_thread () from /lib/tls/i686/cmov/libpthread.so.0
No symbol table info available.
ASTERISK-13 0xb7e1ba0e in clone () from /lib/tls/i686/cmov/libc.so.6
No symbol table info available.
(gdb)
Comments:By: Leif Madsen (lmadsen) 2009-05-19 13:41:02

IRC log when I asked if the backtrace was useful:

[14:31]  <Corydon76-dig> leifmadsen: It's in bridge_call, so I haven't the first clue
[14:32]  <Corydon76-dig> The bridge is between chan_local and chan_sip, anyway
[14:32]  <Corydon76-dig> unistim is not involved, despite the bug title


I will update the topic, and thus issue will be reviewed as soon as a developer is available to look at it. Thanks!

By: Leif Madsen (lmadsen) 2009-05-19 13:42:56

Updated category.

By: Digium Subversion (svnbot) 2009-05-20 12:30:26

Repository: asterisk
Revision: 195688

U   branches/1.4/res/res_features.c

------------------------------------------------------------------------
r195688 | file | 2009-05-20 12:30:25 -0500 (Wed, 20 May 2009) | 5 lines

Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.

(closes issue ASTERISK-14105)
Reported by: barryf

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=195688

By: Digium Subversion (svnbot) 2009-05-20 12:33:03

Repository: asterisk
Revision: 195698

_U  trunk/
U   trunk/main/features.c

------------------------------------------------------------------------
r195698 | file | 2009-05-20 12:33:02 -0500 (Wed, 20 May 2009) | 12 lines

Merged revisions 195688 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
 r195688 | file | 2009-05-20 14:30:25 -0300 (Wed, 20 May 2009) | 5 lines
 
 Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.
 
 (closes issue ASTERISK-14105)
 Reported by: barryf
........

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=195698

By: Digium Subversion (svnbot) 2009-05-20 12:33:49

Repository: asterisk
Revision: 195702

_U  branches/1.6.0/
U   branches/1.6.0/main/features.c

------------------------------------------------------------------------
r195702 | file | 2009-05-20 12:33:49 -0500 (Wed, 20 May 2009) | 19 lines

Merged revisions 195698 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r195698 | file | 2009-05-20 14:33:02 -0300 (Wed, 20 May 2009) | 12 lines
 
 Merged revisions 195688 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r195688 | file | 2009-05-20 14:30:25 -0300 (Wed, 20 May 2009) | 5 lines
   
   Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.
   
   (closes issue ASTERISK-14105)
   Reported by: barryf
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=195702

By: Digium Subversion (svnbot) 2009-05-20 12:34:27

Repository: asterisk
Revision: 195705

_U  branches/1.6.1/
U   branches/1.6.1/main/features.c

------------------------------------------------------------------------
r195705 | file | 2009-05-20 12:34:27 -0500 (Wed, 20 May 2009) | 19 lines

Merged revisions 195698 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r195698 | file | 2009-05-20 14:33:02 -0300 (Wed, 20 May 2009) | 12 lines
 
 Merged revisions 195688 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r195688 | file | 2009-05-20 14:30:25 -0300 (Wed, 20 May 2009) | 5 lines
   
   Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.
   
   (closes issue ASTERISK-14105)
   Reported by: barryf
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=195705

By: Digium Subversion (svnbot) 2009-05-20 12:35:11

Repository: asterisk
Revision: 195707

_U  branches/1.6.2/
U   branches/1.6.2/main/features.c

------------------------------------------------------------------------
r195707 | file | 2009-05-20 12:35:11 -0500 (Wed, 20 May 2009) | 19 lines

Merged revisions 195698 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
 r195698 | file | 2009-05-20 14:33:02 -0300 (Wed, 20 May 2009) | 12 lines
 
 Merged revisions 195688 via svnmerge from
 https://origsvn.digium.com/svn/asterisk/branches/1.4
 
 ........
   r195688 | file | 2009-05-20 14:30:25 -0300 (Wed, 20 May 2009) | 5 lines
   
   Fix some code that wrongly assumed a pointer would always be non-NULL when dealing with CDRs after a bridge.
   
   (closes issue ASTERISK-14105)
   Reported by: barryf
 ........
................

------------------------------------------------------------------------

http://svn.digium.com/view/asterisk?view=rev&revision=195707