[asterisk-bugs] [JIRA] (ASTERISK-27234) Crash on hangup
Rusty Newton (JIRA)
noreply at issues.asterisk.org
Fri Sep 1 15:47:08 CDT 2017
[ https://issues.asterisk.org/jira/browse/ASTERISK-27234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Rusty Newton updated ASTERISK-27234:
------------------------------------
Assignee: Richard Kenner
Status: Waiting for Feedback (was: Triage)
> Crash on hangup
> ---------------
>
> Key: ASTERISK-27234
> URL: https://issues.asterisk.org/jira/browse/ASTERISK-27234
> Project: Asterisk
> Issue Type: Bug
> Security Level: None
> Components: Core/Channels
> Affects Versions: 14.6.0
> Environment: Centos 7
> Reporter: Richard Kenner
> Assignee: Richard Kenner
>
> I'm testing video in conferences and have a Polycom Trio at one endpoint and two desktops running Linphone as two other endpoints. I have a crash due to a memory free problem at ast_free(ast_channel_tech_pvt(chan));
> The full traceback is:
> #0 0x00007fad156f51d7 in raise () from /lib64/libc.so.6
> #1 0x00007fad156f68c8 in abort () from /lib64/libc.so.6
> #2 0x00007fad15734f07 in __libc_message () from /lib64/libc.so.6
> #3 0x00007fad1573c503 in _int_free () from /lib64/libc.so.6
> #4 0x00000000004b2516 in ast_channel_destructor (obj=0x7fac9001ef38)
> at channel.c:2283
> #5 0x000000000045c5ec in __ao2_ref (user_data=0x7fac9001ef38,
> delta=delta at entry=-1, tag=tag at entry=0x61b53e "",
> file=file at entry=0x625286 "channel.c", line=line at entry=2706,
> func=func at entry=0x634945 <__PRETTY_FUNCTION__.20322> "ast_hangup")
> at astobj2.c:569
> #6 0x000000000045e924 in __container_unlink_node_debug (
> func=0x634945 <__PRETTY_FUNCTION__.20322> "ast_hangup", line=2706,
> file=0x625286 "channel.c", tag=0x61b53e "", flags=<optimized out>,
> node=0x7fac90020b50) at astobj2_container.c:52
> #7 internal_ao2_traverse (self=self at entry=0x2359ad8, flags=35,
> cb_fn=cb_fn at entry=0x45dd80 <ao2_match_by_addr>,
> arg=arg at entry=0x7fac9001ef38, tag=tag at entry=0x61b53e "",
> file=file at entry=0x625286 "channel.c", line=line at entry=2706,
> func=func at entry=0x634945 <__PRETTY_FUNCTION__.20322> "ast_hangup",
> type=AO2_CALLBACK_DEFAULT, data=0x0) at astobj2_container.c:377
> #8 0x000000000045ecef in __ao2_callback (
> func=0x634945 <__PRETTY_FUNCTION__.20322> "ast_hangup", line=2706,
> ---Type <return> to continue, or q <return> to quit---
> file=0x625286 "channel.c", tag=0x61b53e "", arg=0x7fac9001ef38,
> cb_fn=0x45dd80 <ao2_match_by_addr>, flags=<optimized out>, c=0x2359ad8)
> at astobj2_container.c:416
> #9 __ao2_unlink (c=0x2359ad8, user_data=user_data at entry=0x7fac9001ef38,
> flags=<optimized out>, flags at entry=0, tag=tag at entry=0x61b53e "",
> file=file at entry=0x625286 "channel.c", line=line at entry=2706,
> func=func at entry=0x634945 <__PRETTY_FUNCTION__.20322> "ast_hangup")
> at astobj2_container.c:187
> #10 0x00000000004b37b3 in ast_hangup (chan=chan at entry=0x7fac9001ef38)
> at channel.c:2706
> #11 0x000000000058017f in __ast_pbx_run (c=c at entry=0x7fac9001ef38,
> args=args at entry=0x0) at pbx.c:4558
> #12 0x0000000000580e23 in pbx_thread (data=data at entry=0x7fac9001ef38)
> at pbx.c:4650
> #13 0x00000000005f917a in dummy_start (data=<optimized out>) at utils.c:1233
> #14 0x00007fad164f7dc5 in start_thread () from /lib64/libpthread.so.0
> #15 0x00007fad157b776d in clone () from /lib64/libc.so.6
> And the channel looks like:
> (gdb) print *chan
> $1 = {tech = 0x7faca1399240 <sip_tech>, tech_pvt = 0x7fac90017498,
> music_state = 0x0, generatordata = 0x0, generator = 0x0, masq = 0x0,
> masqr = 0x0,
> blockproc = 0x6348c0 <__PRETTY_FUNCTION__.20491> "ast_waitfor_nandfds",
> appl = 0x0, data = 0x0, sched = 0x7fac9001e3f0, stream = 0x0,
> vstream = 0x0, timingfunc = 0x0, timingdata = 0x0, pbx = 0x0,
> writetrans = 0x0, readtrans = 0x0, audiohooks = 0x7facc4000e90,
> framehooks = 0x7facc4002a80, cdr = 0x0, zone = 0x0, monitor = 0x0,
> callid = 0, dialed_causes = 0x7fac9001fad8,
> __field_mgr_pool = 0x7fac9001e4c0,
> name = 0x7fac9001e4e2 "SIP/4225-00000001", language = 0x7fac9001e4f6 "en",
> musicclass = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> latest_musicclass = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> accountcode = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> peeraccount = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> userfield = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> call_forward = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> parkinglot = 0x7fac9001e4fc "default",
> hangupsource = 0x7fac9001e506 "SIP/4225-00000001",
> dialcontext = 0x8ed732 <__ast_string_field_empty_buffer+2> "",
> __field_mgr = {last_alloc = 0x7fac9001e506 "SIP/4225-00000001",
> embedded_pool = 0x0, string_fields = {elems = 0x7fac9001eb70, max = 11,
> current = 11}}, uniqueid = {creation_time = 1504129197,
> ---Type <return> to continue, or q <return> to quit---
> creation_unique = 3,
> unique_id = "1504129197.3", '\000' <repeats 139 times>}, linkedid = {
> creation_time = 1504129197, creation_unique = 3,
> unique_id = "1504129197.3", '\000' <repeats 139 times>}, whentohangup = {
> tv_sec = 0, tv_usec = 0}, blocker = 140381338859264, dialed = {number = {
> str = 0x7fac9001e6a0 "206", plan = 0}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> transit_network_select = 0}, caller = {id = {name = {
> str = 0x7fac9001ebd0 "Mike Cleaves", char_set = 1, presentation = 0,
> valid = 1 '\001'}, number = {str = 0x7fac9001e210 "4225", plan = 0,
> presentation = 0, valid = 1 '\001'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x7fac90005fc0 ""}, ani = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {
> str = 0x7fac90002b30 "4225", plan = 0, presentation = 0,
> valid = 1 '\001'}, subaddress = {str = 0x0, type = 0,
> odd_even_indicator = 0 '\000', valid = 0 '\000'}, tag = 0x0}, priv = {
> name = {str = 0x0, char_set = 1, presentation = 0, valid = 0 '\000'},
> number = {str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, ani2 = 0}, connected = {id = {name = {
> str = 0x0, char_set = 1, presentation = 0, valid = 0 '\000'},
> number = {str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> ---Type <return> to continue, or q <return> to quit---
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, ani = {name = {str = 0x0,
> char_set = 1, presentation = 0, valid = 0 '\000'}, number = {
> str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, priv = {name = {str = 0x0,
> char_set = 1, presentation = 0, valid = 0 '\000'}, number = {
> str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, ani2 = 0, source = 0},
> connected_indicated = {id = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {str = 0x0, plan = 0,
> presentation = 0, valid = 0 '\000'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x0}, ani = {name = {str = 0x0, char_set = 1, presentation = 0,
> valid = 0 '\000'}, number = {str = 0x0, plan = 0, presentation = 0,
> valid = 0 '\000'}, subaddress = {str = 0x0, type = 0,
> odd_even_indicator = 0 '\000', valid = 0 '\000'}, tag = 0x0}, priv = {
> name = {str = 0x0, char_set = 1, presentation = 0, valid = 0 '\000'},
> number = {str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, ani2 = 0, source = 0}, redirecting = {
> orig = {name = {str = 0x0, char_set = 1, presentation = 0,
> ---Type <return> to continue, or q <return> to quit---
> valid = 0 '\000'}, number = {str = 0x0, plan = 0, presentation = 0,
> valid = 0 '\000'}, subaddress = {str = 0x0, type = 0,
> odd_even_indicator = 0 '\000', valid = 0 '\000'}, tag = 0x0}, from = {
> name = {str = 0x0, char_set = 1, presentation = 0, valid = 0 '\000'},
> number = {str = 0x0, plan = 0, presentation = 0, valid = 0 '\000'},
> subaddress = {str = 0x0, type = 0, odd_even_indicator = 0 '\000',
> valid = 0 '\000'}, tag = 0x0}, to = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {str = 0x0, plan = 0,
> presentation = 0, valid = 0 '\000'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x0}, priv_orig = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {str = 0x0, plan = 0,
> presentation = 0, valid = 0 '\000'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x0}, priv_from = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {str = 0x0, plan = 0,
> presentation = 0, valid = 0 '\000'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x0}, priv_to = {name = {str = 0x0, char_set = 1,
> presentation = 0, valid = 0 '\000'}, number = {str = 0x0, plan = 0,
> presentation = 0, valid = 0 '\000'}, subaddress = {str = 0x0,
> type = 0, odd_even_indicator = 0 '\000', valid = 0 '\000'},
> tag = 0x0}, reason = {str = 0x0, code = 0}, orig_reason = {str = 0x0,
> ---Type <return> to continue, or q <return> to quit---
> code = 0}, count = 0}, dtmff = {frametype = 0, subclass = {integer = 0,
> format = 0x0, frame_ending = 0}, datalen = 0, samples = 0, mallocd = 0,
> mallocd_hdr_len = 0, offset = 0, src = 0x0, data = {ptr = 0x0,
> uint32 = 0, pad = "\000\000\000\000\000\000\000"}, delivery = {
> tv_sec = 0, tv_usec = 0}, frame_list = {next = 0x0}, flags = 0, ts = 0,
> len = 0, seqno = 0}, varshead = {first = 0x7facc4005550,
> last = 0x7fac9001e320}, callgroup = 0, pickupgroup = 0,
> named_callgroups = 0x0, named_pickupgroups = 0x0, creationtime = {
> tv_sec = 1504129197, tv_usec = 784376}, answertime = {
> tv_sec = 1504129198, tv_usec = 343165}, readq = {first = 0x7facc4003ad0,
> last = 0x7fac904b0c60}, jb = {conf = {flags = 0, max_size = 200,
> resync_threshold = 1000, impl = "fixed\000\000\000\000\000\000",
> target_extra = 40}, impl = 0x0, jbobj = 0x0, timebase = {tv_sec = 0,
> tv_usec = 0}, next = 0, last_format = 0x0, logfile = 0x0, flags = 0},
> dtmf_tv = {tv_sec = 0, tv_usec = 0}, hangup_handlers = {first = 0x0,
> last = 0x0}, datastores = {first = 0x0, last = 0x0}, autochans = {
> first = 0x0, last = 0x0}, insmpl = 0, outsmpl = 0, fds = {41, 44, 42, 43,
> -1, -1, 47, -1, -1, 45, 46}, softhangup = 145, fdno = -1, streamid = -1,
> vstreamid = -1, oldwriteformat = 0x7fac9001e380, timingfd = 45,
> state = AST_STATE_UP, rings = 0, priority = 2, macropriority = 0,
> amaflags = 3, adsicpe = AST_ADSI_UNAVAILABLE, fin = 826181, fout = 653358,
> hangupcause = 16, finalized = 1, flags = {flags = 16777232}, alertpipe = {
> 46, 46}, nativeformats = 0x7fac9001e950, readformat = 0x7facc40104b0,
> ---Type <return> to continue, or q <return> to quit---
> writeformat = 0x7facc4054160, rawreadformat = 0x7facc40104b0,
> rawwriteformat = 0x7facc4054160, emulate_dtmf_duration = 0,
> visible_indication = 0, hold_state = 17, transfercapability = 0,
> bridge = 0x0, bridge_channel = 0x0, timer = 0x7fac9001e230,
> context = "Conferences", '\000' <repeats 68 times>,
> exten = "h\000\066\000\060\066\060-20\000\066", '\000' <repeats 67 times>,
> macrocontext = '\000' <repeats 79 times>,
> macroexten = '\000' <repeats 79 times>, unbridged = 0 '\000',
> is_t38_active = 0 '\000', dtmf_digit_to_emulate = 0 '\000',
> sending_dtmf_digit = 0 '\000', sending_dtmf_tv = {tv_sec = 0, tv_usec = 0},
> topics = 0x7fac90016978, endpoint_forward = 0x7fac90020bb0,
> endpoint_cache_forward = 0x7fac90020cb0}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
More information about the asterisk-bugs
mailing list