[asterisk-bugs] [JIRA] (ASTERISK-27234) Crash on hangup

Richard Kenner (JIRA) noreply at issues.asterisk.org
Fri Sep 1 16:35:08 CDT 2017


     [ https://issues.asterisk.org/jira/browse/ASTERISK-27234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Richard Kenner updated ASTERISK-27234:
--------------------------------------

    Description: 
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 in the attached file traceback.txt and the channel contents are in channel.txt.


  was:
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}





> 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 in the attached file traceback.txt and the channel contents are in channel.txt.



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list