[Home]

Summary:ASTERISK-12033: Chan_skinny causing asterisk dumps core randomly
Reporter:sbisker (sbisker)Labels:
Date Opened:2008-05-16 14:41:05Date Closed:2008-05-16 16:29:37
Priority:CriticalRegression?No
Status:Closed/CompleteComponents:Channels/chan_skinny
Versions:Frequency of
Occurrence
Related
Issues:
Environment:Attachments:
Description:I have a 1.4.19 system that has 35 chan_skinny devices that is randomly crashing on ast_rtp_new_source.

All of the phones are wireless 7920 or 7921.  It usually happens every week or so, however, it's done it 3 times today.  Don't know if the problem is with RTP, or chan_skinny.  

The backtrace looks the same every time.  Hopefully this is an easy fix.

Here's the backtrace.

#0  0x080cebee in ast_rtp_new_source (rtp=0x0) at rtp.c:2004
#1  0x00a97765 in skinny_indicate (ast=0x9d88fa8, ind=20, data=0x0, datalen=0) at chan_skinny.c:2799
#2  0x08083a41 in ast_indicate_data (chan=0x9d88fa8, condition=20, data=0x0, datalen=0) at channel.c:2348
#3  0x080839a6 in ast_indicate (chan=0x9d88fa8, condition=20) at channel.c:2334
#4  0x08088782 in ast_channel_bridge (c0=0x9d88528, c1=0x9d88fa8, config=0xb5cca080, fo=0xb5cc9eec, rc=0xb5cc9ee8) at channel.c:3933
ASTERISK-1  0x00a5f308 in ast_bridge_call (chan=0x9d88528, peer=0x9d88fa8, config=0xb5cca080) at res_features.c:1422
ASTERISK-2  0x00b8d85a in dial_exec_full (chan=0x9d88528, data=0xb5cccb10, peerflags=0xb5cca9d0, continue_exec=0x0) at app_dial.c:1693
ASTERISK-3  0x00b8db86 in dial_exec (chan=0x9d88528, data=0xb5cccb10) at app_dial.c:1747
ASTERISK-4  0x080bb1b1 in pbx_exec (c=0x9d88528, app=0x9b296c0, data=0xb5cccb10)
   at /root/digium/1.4/asterisk-1.4.19/include/asterisk/strings.h:35
ASTERISK-5  0x080be3ca in pbx_extension_helper (c=0x9d88528, con=0x0, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=2,
   label=0x0, callerid=0x9bf17e0 "7898", action=E_SPAWN) at pbx.c:1862
ASTERISK-6 0x080bf470 in ast_spawn_extension (c=0x9d88528, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=2,
   callerid=0x9bf17e0 "7898") at pbx.c:2317
ASTERISK-7 0x06a912f8 in _macro_exec (chan=0x9d88528, data=0xb5cd2000, exclusive=0) at app_macro.c:308
ASTERISK-8 0x06a9209e in macro_exec (chan=0x9d88528, data=0xb5cd2000) at app_macro.c:486
ASTERISK-9 0x080bb1b1 in pbx_exec (c=0x9d88528, app=0x9b8ade8, data=0xb5cd2000)
   at /root/digium/1.4/asterisk-1.4.19/include/asterisk/strings.h:35
ASTERISK-10 0x080be3ca in pbx_extension_helper (c=0x9d88528, con=0x0, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=1,
   label=0x0, callerid=0x9bf17e0 "7898", action=E_SPAWN) at pbx.c:1862
ASTERISK-11 0x080bf470 in ast_spawn_extension (c=0x9d88528, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=1,
   callerid=0x9bf17e0 "7898") at pbx.c:2317
ASTERISK-12 0x080bf97a in __ast_pbx_run (c=0x9d88528) at pbx.c:2419
ASTERISK-13 0x080c06b7 in pbx_thread (data=0x9d88528) at pbx.c:2634
ASTERISK-14 0x080faeb7 in dummy_start (data=0x9d38dd0) at utils.c:865
ASTERISK-15 0x00afe371 in start_thread () from /lib/tls/libpthread.so.0
ASTERISK-16 0x00f38ffe in clone () from /lib/tls/libc.so.6


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

Here's the full backtrace.


#0  0x080cebee in ast_rtp_new_source (rtp=0x0) at rtp.c:2004
No locals.
#1  0x00a97765 in skinny_indicate (ast=0x9d88fa8, ind=20, data=0x0, datalen=0) at chan_skinny.c:2799
sub = (struct skinny_subchannel *) 0x9d89478
l = (struct skinny_line *) 0x9b38ec0
d = (struct skinny_device *) 0x9b38d78
s = (struct skinnysession *) 0x9d8d700
exten = '\0' <repeats 79 times>
__PRETTY_FUNCTION__ = "skinny_indicate"
#2  0x08083a41 in ast_indicate_data (chan=0x9d88fa8, condition=20, data=0x0, datalen=0) at channel.c:2348
res = -1
__PRETTY_FUNCTION__ = "ast_indicate_data"
#3  0x080839a6 in ast_indicate (chan=0x9d88fa8, condition=20) at channel.c:2334
No locals.
#4  0x08088782 in ast_channel_bridge (c0=0x9d88528, c1=0x9d88fa8, config=0xb5cca080, fo=0xb5cc9eec, rc=0xb5cc9ee8) at channel.c:3933
who = (struct ast_channel *) 0x0
res = AST_BRIDGE_COMPLETE
nativefailed = 0
firstpass = 1
o0nativeformats = 4
o1nativeformats = 12
time_left_ms = 0
nexteventts = {tv_sec = 0, tv_usec = 0}
caller_warning = 0 '\0'
callee_warning = 0 '\0'
__PRETTY_FUNCTION__ = "ast_channel_bridge"
ASTERISK-1  0x00a5f308 in ast_bridge_call (chan=0x9d88528, peer=0x9d88fa8, config=0xb5cca080) at res_features.c:1422
other = (struct ast_channel *) 0x9d96250
f = (struct ast_frame *) 0x0
who = (struct ast_channel *) 0x0
chan_featurecode = '\0' <repeats 11 times>
peer_featurecode = '\0' <repeats 11 times>
res = 12137152
diff = -1244881208
hasfeatures = 0
hadfeatures = 0
aoh = (struct ast_option_header *) 0x0
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 *) 0x3cd2b90
__PRETTY_FUNCTION__ = "ast_bridge_call"
ASTERISK-2  0x00b8d85a in dial_exec_full (chan=0x9d88528, data=0xb5cccb10, peerflags=0xb5cca9d0, continue_exec=0x0) at app_dial.c:1693
config = {features_caller = {flags = 0}, features_callee = {flags = 2}, start_time = {tv_sec = 1210966438, tv_usec = 485622},
 feature_timer = 0, timelimit = 0, play_warning = 0, warning_freq = 0, warning_sound = 0x0, end_sound = 0x0, start_sound = 0x0,
 firstpass = 0, flags = 2}
---Type <return> to continue, or q <return> to quit---
number = 0x9d894e1 "5245@5245"
end_time = 0
answer_time = 1210966438
res = 0
u = (struct ast_module_user *) 0x9cb2468
rest = 0x0
cur = 0x0
outgoing = (struct dial_localuser *) 0x0
peer = (struct ast_channel *) 0x9d88fa8
to = 12695
numbusy = 0
numcongestion = 0
numnochan = 0
cause = 0
numsubst = "5245@5245\000\000\000\000\000\000\000d\000\000\000?   \000\000\000\000\000\000\000\000???\000?\177?\000?\205?\000e\000\000\000???\177?\000?\205?\000?{?\000???:?\000?\205?\000[\031?\000`???K?X??<?\006\b????\027\000\000\000\024\215?\t\221\215\022\b\000\000\000\000\000\000\000\000\032\027\000\000\033\215?\t2\000\000\000!\000\000\000\017\000\000\000\020\000\000\000\004\000\000\000l\000\000\000\005\000\000\000\210\000\000\000\001\000\000\000????\000\000\000\000\024??\020\215?\t\236?-H\230\215?\t\000\000\000\000`??\200\000\000\000"...
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 = 0
outbound_group = 0x0
result = 0
start_time = 1210966430
privintro = "\237??\000\004\000\000\000????K\000\000\000?f?\t?{?\000\034?s D*?\000????\001", '\0' <repeats 12 times>, "?\000\000\000\000\000\000\000\000\000\000-\200\025\000?\201\000\000\001", '\0' <repeats 23 times>, "?\004\000\000\000\000\000\000\000\020\000\000\b\000\000\000\000\000\000\000??-H\002\000\000\000\002\000\000\000\000\000\000\000?*[E\000\000\000\000-\200\025\000\000\000\000\000\214??\001T?\000@\230?\000\017\000\000\000?\177?\000\017\000\000\000\037??\000???F??\000P??\t\037??\000\017\000\000\000?\177?", '\0' <repeats 17 times>, "????\026??\000\000"...
privcid = "???\001T?\000@\230?\000\017\000\000\000?\177?\000\017\000\000\000\037??\000\034??F??\000P??\t\037??\000\017\000\000\000?\177?\000\000\000\000\000\000\000\000\000\214?????\000\037??", '\0' <repeats 17 times>, "\234\215?\t\234\215?\t?\215?\t\037??\000?????", '\0' <repeats 20 times>, "????\001", '\0' <repeats 23 times>, "?\177?\000\017\000\000\000\000\000\000\000\230??\016??\000?\177?\---Type <return> to continue, or q <return> to quit---
000(???>?\000\r??\026??\002\000\000\000?\a\000\000?3?\000\017\000\000\000\210\000\000\000\000\000\000\000??\000\000\000"...
parse = 0xb5cc9f50 "Skinny"
opermode = 0
args = {argc = 3, argv = 0xb5cca1b4, peers = 0xb5cc9f50 "Skinny", timeout = 0xb5cc9f61 "20", options = 0xb5cc9f64 "tr",
 url = 0x0}
opts = {flags = 655360}
opt_args = {0x0, 0x1 "", 0x81352b2 "", 0x0, 0x0, 0x0, 0x0, 0x15802d ">2", 0x81a4 <Address 0x81a4 out of bounds>}
datastore = (struct ast_datastore *) 0x9d88f48
fulldial = 0
num_dialed = 1
__PRETTY_FUNCTION__ = "dial_exec_full"
ASTERISK-3  0x00b8db86 in dial_exec (chan=0x9d88528, data=0xb5cccb10) at app_dial.c:1747
peerflags = {flags = 524288}
ASTERISK-4  0x080bb1b1 in pbx_exec (c=0x9d88528, app=0x9b296c0, data=0xb5cccb10)
   at /root/digium/1.4/asterisk-1.4.19/include/asterisk/strings.h:35
res = -1244878240
saved_c_appl = 0x9b8adfc "Macro"
saved_c_data = 0xb5cd2000 "stdexten|5245|Skinny/5245@5245"
ASTERISK-5  0x080be3ca in pbx_extension_helper (c=0x9d88528, con=0x0, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=2,
   label=0x0, callerid=0x9bf17e0 "7898", action=E_SPAWN) at pbx.c:1862
e = (struct ast_exten *) 0x9b93ff0
app = (struct ast_app *) 0x9b296c0
res = -1244836944
q = {incstack = {0x0 <repeats 128 times>}, stacklen = 0, status = 5, swo = 0x0, data = 0x0,
 foundcontext = 0x9d886a8 "macro-stdexten"}
passdata = "Skinny/5245@5245|20|tr", '\0' <repeats 8169 times>
matching_action = 0
__PRETTY_FUNCTION__ = "pbx_extension_helper"
ASTERISK-6 0x080bf470 in ast_spawn_extension (c=0x9d88528, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=2,
   callerid=0x9bf17e0 "7898") at pbx.c:2317
No locals.
ASTERISK-7 0x06a912f8 in _macro_exec (chan=0x9d88528, data=0xb5cd2000, exclusive=0) at app_macro.c:308
c = (struct ast_context *) 0x9b909b8
e = (struct ast_exten *) 0x9b93ff0
s = 0x0
tmp = 0xb5ccedb0 "stdexten"
cur = 0x0
rest = 0x0
macro = 0xb5ccedb0 "stdexten"
fullmacro = "macro-stdexten\000?P\037??K?????\005\v\b\005\000\000\000\aQ\023\b\204\003\000\000wi\023\b?R\023\b\024\215?\t???\2258\017\b?\037?\000\000\000\000K\000\000\000\000\000\000"
varname = "ARG2\000\000\000\000\032\027\000\000\033\215?\t2\000\000\000!\000\000\000\017\000\000\000\020\000\000\000\004\000\000\000l\000\000\000\005\000\000\000\210\000\000\000\001\000\000\000????\000\000\000\000\004??\020\215?\t\236?-H\230\215?\t\000\000\000"
runningapp = "Dial\000\177?\000?\205?\000h\000\000\000????\177?\000?\205?\000?{?\000????:?\000?\205?\000[\031?\000P\037??K?H??<?\006\b????\027\000\000\000\024\215?\t\221\215\022\b"
runningdata = "${ARG2}|20|tr\000te)=0\000\234\215?\t\234\215?\t\234\215?\t\v\216?\t\033\216?\t\234\215?\t\033\216?\t", '\0' <repe---Type <return> to continue, or q <return> to quit---
ats 20 times>, "????", '\0' <repeats 24 times>, "???\177\017\177\003\000\000\000\000???? z?\000????\000L?\000????\003\000\000\000\003\000\000\000p;\024\b?\a\000\000?\a\000\000\017\000\000\000\210\000\000\000\000\000\000\000 z?\000\000\000\000\000\226??\000\000\000\000?^?\000h??$??\000\231\000\000\000\237??\000\004\000\000\000\000???\231\000\000\000?f?\t?{?\000\214?????\000"...
oldargs = {0x0 <repeats 81 times>}
argc = 3
x = 8
res = 0
oldexten = "5245", '\0' <repeats 251 times>
oldpriority = 1
gosub_level = 0
pc = "1\000?\001T?\000@\230?\000\017\000\000\000?\177?\000\017\000\000\000\037??\000\f??F??\000P??\t\037??\000\017\000\000\000?\177?\000\000\000\000\000\000\000\000\000|?????\000\037??\000\000\000\000\000\000\000\000"
depthc = "1\000[E\000\000\000\000-\200\025"
oldcontext = "local", '\0' <repeats 74 times>
inhangupc = 0x0
offset = 135484082
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 *) 0x9c2b9d8
__PRETTY_FUNCTION__ = "_macro_exec"
ASTERISK-8 0x06a9209e in macro_exec (chan=0x9d88528, data=0xb5cd2000) at app_macro.c:486
No locals.
ASTERISK-9 0x080bb1b1 in pbx_exec (c=0x9d88528, app=0x9b8ade8, data=0xb5cd2000)
   at /root/digium/1.4/asterisk-1.4.19/include/asterisk/strings.h:35
res = -1244856496
saved_c_appl = 0x0
saved_c_data = 0x0
ASTERISK-10 0x080be3ca in pbx_extension_helper (c=0x9d88528, con=0x0, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=1,
   label=0x0, callerid=0x9bf17e0 "7898", action=E_SPAWN) at pbx.c:1862
e = (struct ast_exten *) 0x9b970d8
app = (struct ast_app *) 0x9b8ade8
res = 8
q = {incstack = {0x9b9604c "local", 0x9b948fc "emergency", 0x0 <repeats 126 times>}, stacklen = 2, status = 5, swo = 0x0,
 data = 0x0, foundcontext = 0x9b96187 "extensions"}
passdata = "stdexten|5245|Skinny/5245@5245", '\0' <repeats 8161 times>
matching_action = 0
__PRETTY_FUNCTION__ = "pbx_extension_helper"
ASTERISK-11 0x080bf470 in ast_spawn_extension (c=0x9d88528, context=0x9d886a8 "macro-stdexten", exten=0x9d886f8 "s", priority=1,
---Type <return> to continue, or q <return> to quit---
   callerid=0x9bf17e0 "7898") at pbx.c:2317
No locals.
ASTERISK-12 0x080bf97a in __ast_pbx_run (c=0x9d88528) at pbx.c:2419
dst_exten = '\0' <repeats 132 times>, "H\230?\000D*?\000\020\000\000\000\000\000\000\000? ?\000\000\000\000\000\f\000\000\000?\177?\000\f\000\000\000@\230?\000\230C?vQ?\000@\230?\000\f\000\000\000\000\000\000\000??\000\000\f\000\000\000\020<?\t?\177?\000\000\000\000\000?K??C??\237\017\b\001\000\000\000'??\000\000\000\000\000?\215?\t\000\000\000\000?K??C?a\222\006\b"
pos = 0
digit = 0
found = 1
res = 0
autoloopflag = 0
error = 0
__PRETTY_FUNCTION__ = "__ast_pbx_run"
ASTERISK-13 0x080c06b7 in pbx_thread (data=0x9d88528) at pbx.c:2634
c = (struct ast_channel *) 0x9d88528
ASTERISK-14 0x080faeb7 in dummy_start (data=0x9d38dd0) at utils.c:865
_buffer = {__routine = 0x8069401 <ast_unregister_thread>, __arg = 0xb5cd4bb0, __canceltype = 0, __prev = 0x0}
ret = (void *) 0x0
a = {start_routine = 0x80c06a0 <pbx_thread>, data = 0x9d88528,
 name = 0x9d9b210 "pbx_thread", ' ' <repeats 11 times>, "started at [ 2658] pbx.c ast_pbx_start()"}
ASTERISK-15 0x00afe371 in start_thread () from /lib/tls/libpthread.so.0
No symbol table info available.
ASTERISK-16 0x00f38ffe in clone () from /lib/tls/libc.so.6
No symbol table info available.
Comments:By: Digium Subversion (svnbot) 2008-05-16 15:22:25

Repository: asterisk
Revision: 116799

U   branches/1.4/channels/chan_skinny.c

------------------------------------------------------------------------
r116799 | file | 2008-05-16 15:22:21 -0500 (Fri, 16 May 2008) | 4 lines

Check to make sure an RTP structure exists before calling ast_rtp_new_source on it.
(closes issue ASTERISK-12033)
Reported by: sbisker

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

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

By: Digium Subversion (svnbot) 2008-05-16 15:24:19

Repository: asterisk
Revision: 116800

_U  trunk/
U   trunk/channels/chan_skinny.c

------------------------------------------------------------------------
r116800 | file | 2008-05-16 15:24:18 -0500 (Fri, 16 May 2008) | 12 lines

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

........
r116799 | file | 2008-05-16 17:28:11 -0300 (Fri, 16 May 2008) | 4 lines

Check to make sure an RTP structure exists before calling ast_rtp_new_source on it.
(closes issue ASTERISK-12033)
Reported by: sbisker

........

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

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

By: Digium Subversion (svnbot) 2008-05-16 16:29:37

Repository: asterisk
Revision: 116849

_U  branches/1.6.0/
U   branches/1.6.0/channels/chan_skinny.c

------------------------------------------------------------------------
r116849 | file | 2008-05-16 16:29:35 -0500 (Fri, 16 May 2008) | 20 lines

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

................
r116800 | file | 2008-05-16 17:30:24 -0300 (Fri, 16 May 2008) | 12 lines

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

........
r116799 | file | 2008-05-16 17:28:11 -0300 (Fri, 16 May 2008) | 4 lines

Check to make sure an RTP structure exists before calling ast_rtp_new_source on it.
(closes issue ASTERISK-12033)
Reported by: sbisker

........

................

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

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