[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