Giter VIP home page Giter VIP logo

Comments (3)

anthmFS avatar anthmFS commented on June 7, 2024

The tech_pvt should not be in the list unless it has a channel.
Try printing *tech_pvt and post results

from freeswitch.

cpmkasinski avatar cpmkasinski commented on June 7, 2024

(gdb) print *tech_pvt

$1 = {pool = 0x7f7c7801f090, jsock_uuid = 0x0, call_id = 0x0,
  r_sdp = 0x20 <Address 0x20 out of bounds>, flags = (unknown: 2013565760),
  session = 0x0, channel = 0x0, smh = 0x0, mparams = 0x0,
  remote_hangup_cause = 56, detach_time = 140172577530608, next = 0x0,
  text_read_frame_data = '\000' <repeats 24 times>, " \000\000\000\000\000\000\000\240\326\025x|\177", '\000' <repeats 18 times>, " \000\000\000\000\000\000\000\240\344\001x|\177", '\000' <repeats 18 times>, " \000\000\000\000\000\000\000P\367\257x|\177", '\000' <repeats 18 times>, "\070\000\000\000\000\000\000\000\200+\004x|\177", '\000' <repeats 82 times>..., text_read_frame = {
    codec = 0x703b313d6465776f,
    source = 0x617a6974656b6361 <Address 0x617a6974656b6361 out of bounds>,
    packet = 0x646f6d2d6e6f6974, packetlen = 993082725,
    extra_data = 0x6576656c2d656c69, data = 0x6532343d64692d6c,
    datalen = 224801072, buflen = 1916625162, samples = 1634562164,
    rate = 808532592, channels = 1953636407, payload = 120 'x',
    timestamp = 221261872, seq = 24842, ssrc = 980448365,
    m = (SWITCH_TRUE | unknown: 540487728), flags = 1031041121,
    user_data = 0x616d7074723d610a, pmap = 0x3248203830313a70,
    img = 0x30303030392f3436, geometry = {w = 1029769741, h = 1885566066,
      x = 979527213, y = 540553265, z = 1735356263, M = 1835364909,
      X = 1628048738}}, text_cond = 0x3830313a62662d70,
  text_cond_mutex = 0x6f70736e61727420, text_read_mutex = 0x610a0d63632d7472,
  text_write_mutex = 0x62662d706374723d,
  text_read_buffer = 0x6d6363203830313a,
  text_write_buffer = 0x3d610a0d72696620}

from freeswitch.

cpmkasinski avatar cpmkasinski commented on June 7, 2024

@anthmFS We would be grateful for your further assistance in this matter

We did some changes in the code to skip in case of null pointers.

for(tech_pvt = verto_globals.tech_head; tech_pvt; tech_pvt = tech_pvt->next) {
                if (tech_pvt->jsock_uuid == NULL || tech_pvt->channel == NULL) {
                        switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Found verto pvt with jsock_uuid or channel null pointer in drop_detached\n");
                        continue;
                }
                if (!switch_channel_up_nosig(tech_pvt->channel)) {
                        continue;
                }

unfortunately we have another similar crash, but this time both jsock_uuid and channel were not NULL.

$1 = {pool = 0x1010101010101010, jsock_uuid = 0x1010101010101010 <Address 0x1010101010101010 out of bounds>, call_id = 0x1010101010101010 <Address 0x1010101010101010 out of bounds>,
  r_sdp = 0x1010101010101010 <Address 0x1010101010101010 out of bounds>, flags = (unknown: 269488144), session = 0x1010101010101010, channel = 0x1010101010101010, smh = 0x1010101010101010, mparams = 0x1010101010101010,
  remote_hangup_cause = 269488144, detach_time = 1157442765409226768, next = 0x1010101010101010,
  text_read_frame_data = '\020' <repeats 152 times>, "@?\005\344\365\177\000\000\000\071\005\344\365\177\000\000 <\005\344\365\177\000\000\000\031\004\344\365\177\000\000\000\t\005\344\365\177\000\000\000)\004\344\365\177\000\000\000"..., text_read_frame = {codec = 0x0, source = 0x0, packet = 0x0, packetlen = 0, extra_data = 0x0, data = 0x0, datalen = 0, buflen = 0, samples = 0, rate = 0, channels = 0, payload = 0 '\000', timestamp = 0, seq = 0, ssrc = 0,
    m = SWITCH_FALSE, flags = 0, user_data = 0x0, pmap = 0x0, img = 0x0, geometry = {w = 0, h = 0, x = 0, y = 0, z = 0, M = 0, X = 0}}, text_cond = 0x0, text_cond_mutex = 0x0, text_read_mutex = 0x0, text_write_mutex = 0x0,
  text_read_buffer = 0x0, text_write_buffer = 0x0}

execution went further and this time crash was on return statement in switch_channel_get_state in switch_channel.c

SWITCH_DECLARE(switch_channel_state_t) switch_channel_get_state(switch_channel_t *channel)
{
      switch_channel_state_t state;
      switch_assert(channel != NULL);

      state = channel->state;

      return state;
}

from freeswitch.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.