[sr-dev] [kamailio/kamailio] Random crashes on tcp_main.c:handle_tcp_child() on FreeBSD (#2638)

Boris Korzun notifications at github.com
Tue Mar 2 13:14:09 CET 2021


@miconda 

```
(lldb) p *tcp_children
(tcp_child) $0 = {
  pid = 51051
  proc_no = 25
  unix_sock = 40
  busy = 0
  mysocket = 0x0000000000000000
  n_reqs = 56
}
```
```
(lldb) p *tcpconn
(tcp_connection) $2 = {
  s = -1
  fd = -1
  write_lock = 0
  id = 29
  reader_pid = 0
  rcv = {
    src_ip = {
      af = 2
      len = 4
      u = {
        addrl = ([0] = 1404229979, [1] = 0)
        addr32 = ([0] = 1404229979, [1] = 0, [2] = 0, [3] = 0)
        addr16 = ([0] = 55643, [1] = 21426, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0)
        addr = {
          [0] = '['
          [1] = '\xd9'
          [2] = '\xb2'
          [3] = 'S'
          [4] = '\0'
          [5] = '\0'
          [6] = '\0'
          [7] = '\0'
          [8] = '\0'
          [9] = '\0'
          [10] = '\0'
          [11] = '\0'
          [12] = '\0'
          [13] = '\0'
          [14] = '\0'
          [15] = '\0'
        }
      }
    }
    dst_ip = {
      af = 2
      len = 4
      u = {
        addrl = ([0] = 1555224923, [1] = 0)
        addr32 = ([0] = 1555224923, [1] = 0, [2] = 0, [3] = 0)
        addr16 = ([0] = 55643, [1] = 23730, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0)
        addr = {
          [0] = '['
          [1] = '\xd9'
          [2] = '\xb2'
          [3] = '\'
          [4] = '\0'
          [5] = '\0'
          [6] = '\0'
          [7] = '\0'
          [8] = '\0'
          [9] = '\0'
          [10] = '\0'
          [11] = '\0'
          [12] = '\0'
          [13] = '\0'
          [14] = '\0'
          [15] = '\0'
        }
      }
    }
    src_port = 5071
    dst_port = 0
    proto_reserved1 = 29
    proto_reserved2 = 0
    src_su = {
      s = (sa_len = '\x10', sa_family = '\x02', sa_data = char [14] @ 0x000000083078485a)
      sin = {
        sin_len = '\x10'
        sin_family = '\x02'
        sin_port = 53011
        sin_addr = (s_addr = 1404229979)
        sin_zero = {
          [0] = '\0'
          [1] = '\0'
          [2] = '\0'
          [3] = '\0'
          [4] = '\0'
          [5] = '\0'
          [6] = '\0'
          [7] = '\0'
        }
      }
      sin6 = {
        sin6_len = '\x10'
        sin6_family = '\x02'
        sin6_port = 53011
        sin6_flowinfo = 1404229979
        sin6_addr = {
          __u6_addr = {
            __u6_addr8 = {
              [0] = '\0'
              [1] = '\0'
              [2] = '\0'
              [3] = '\0'
              [4] = '\0'
              [5] = '\0'
              [6] = '\0'
              [7] = '\0'
              [8] = '\0'
              [9] = '\0'
              [10] = '\0'
              [11] = '\0'
              [12] = '\0'
              [13] = '\0'
              [14] = '\0'
              [15] = '\0'
            }
            __u6_addr16 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0)
            __u6_addr32 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0)
          }
        }
        sin6_scope_id = 0
      }
      sas = (ss_len = '\x10', ss_family = '\x02', __ss_pad1 = char [6] @ 0x000000083078485a, __ss_align = 0, __ss_pad2 = char [112] @ 0x0000000830784868)
    }
    bind_address = 0x0000000801492170
    proto = '\x03'
    proto_pad0 = '\0'
    proto_pad1 = 0
  }
  cinfo = {
    src_ip = {
      af = 0
      len = 0
      u = {
        addrl = ([0] = 0, [1] = 0)
        addr32 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0)
        addr16 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0)
        addr = {
          [0] = '\0'
          [1] = '\0'
          [2] = '\0'
          [3] = '\0'
          [4] = '\0'
          [5] = '\0'
          [6] = '\0'
          [7] = '\0'
          [8] = '\0'
          [9] = '\0'
          [10] = '\0'
          [11] = '\0'
          [12] = '\0'
          [13] = '\0'
          [14] = '\0'
          [15] = '\0'
        }
      }
    }
    dst_ip = {
      af = 0
      len = 0
      u = {
        addrl = ([0] = 0, [1] = 0)
        addr32 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0)
        addr16 = ([0] = 0, [1] = 0, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 0)
        addr = {
          [0] = '\0'
          [1] = '\0'
          [2] = '\0'
          [3] = '\0'
          [4] = '\0'
          [5] = '\0'
          [6] = '\0'
          [7] = '\0'
          [8] = '\0'
          [9] = '\0'
          [10] = '\0'
          [11] = '\0'
          [12] = '\0'
          [13] = '\0'
          [14] = '\0'
          [15] = '\0'
        }
      }
    }
    src_port = 0
    dst_port = 0
    proto = 0
    csocket = 0x0000000000000000
  }
  req = {
    next = 0x0000000000000000
    buf = 0x0000000802e93610 "\r\n\r\n2.0 487 Request Terminated\r\nVia: SIP/2.0/TLS 91.217.xx.yy:5070;rport=12181;received=91.217.xx.yy;branch=z9hG4bK6b3e.a1465b8bd9ff395e0dd82d3998ac2841.0;i=1\r\nVia: SIP/2.0/UDP 127.0.0.127;branch=z9hG4bKsr-TU0.jAsiBomT.bdNBXQqjzxIGo33Go3q8XebBLYqG-n0YIKJVvKQlXxrGg3-Bg3C8AQiBz.qGbpslupJVzWqwhmqVLUb8Lxr8zWRwv4iYINmFz0epApRgAxUGL.q8zx-BAd*\r\nRecord-Route: <sip:91.217.xx.yy:5070;transport=tls;lr;r2=on;ftag=304836990;nat=yes>\r\nRecord-Route: <sip:127.0.0.127;line=sr-wI0rGzQCjzsC8q3C8ANiGXskVZnO258r2-nUlapzwLWqBzbM2zWtwzbM2zWvVh45lXBr8LNA8zQEBLWiYa.mFuKA>\r\nCall-ID: 1675015211 at 192.168.88.25\r\nFrom: "222" <sip:222 at pbx.domain.tld>;tag=304836990\r\nTo: <sip:333 at pbx.domain.tld>;tag=0cd46e4d-0a5b-4574-8984-dbe7076db118\r\nCSeq: 2 INVITE\r\nServer: PBX\r\nAllow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REFER\r\nRemote-Party-ID: "phone3" <sip:333 at pbx.domain.tld>;party=called;privacy=off;screen=no\r\nContent-Length:  0\r\n\r\n=off;screen=no\r\nContent-Length:  0\r\n\r\n0\r\n\r\n\na=ptime:20\r\na=maxptime:150\r\na=sendre"
    start = 0x0000000802e93610 "\r\n\r\n2.0 487 Request Terminated\r\nVia: SIP/2.0/TLS 91.217.xx.yy:5070;rport=12181;received=91.217.xx.yy;branch=z9hG4bK6b3e.a1465b8bd9ff395e0dd82d3998ac2841.0;i=1\r\nVia: SIP/2.0/UDP 127.0.0.127;branch=z9hG4bKsr-TU0.jAsiBomT.bdNBXQqjzxIGo33Go3q8XebBLYqG-n0YIKJVvKQlXxrGg3-Bg3C8AQiBz.qGbpslupJVzWqwhmqVLUb8Lxr8zWRwv4iYINmFz0epApRgAxUGL.q8zx-BAd*\r\nRecord-Route: <sip:91.217.xx.yy:5070;transport=tls;lr;r2=on;ftag=304836990;nat=yes>\r\nRecord-Route: <sip:127.0.0.127;line=sr-wI0rGzQCjzsC8q3C8ANiGXskVZnO258r2-nUlapzwLWqBzbM2zWtwzbM2zWvVh45lXBr8LNA8zQEBLWiYa.mFuKA>\r\nCall-ID: 1675015211 at 192.168.88.25\r\nFrom: "222" <sip:222 at pbx.domain.tld>;tag=304836990\r\nTo: <sip:333 at pbx.domain.tld>;tag=0cd46e4d-0a5b-4574-8984-dbe7076db118\r\nCSeq: 2 INVITE\r\nServer: PBX\r\nAllow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REFER\r\nRemote-Party-ID: "phone3" <sip:333 at pbx.domain.tld>;party=called;privacy=off;screen=no\r\nContent-Length:  0\r\n\r\n=off;screen=no\r\nContent-Length:  0\r\n\r\n0\r\n\r\n\na=ptime:20\r\na=maxptime:150\r\na=sendre"
    pos = 0x0000000802e93610 "\r\n\r\n2.0 487 Request Terminated\r\nVia: SIP/2.0/TLS 91.217.xx.yy:5070;rport=12181;received=91.217.xx.yy;branch=z9hG4bK6b3e.a1465b8bd9ff395e0dd82d3998ac2841.0;i=1\r\nVia: SIP/2.0/UDP 127.0.0.127;branch=z9hG4bKsr-TU0.jAsiBomT.bdNBXQqjzxIGo33Go3q8XebBLYqG-n0YIKJVvKQlXxrGg3-Bg3C8AQiBz.qGbpslupJVzWqwhmqVLUb8Lxr8zWRwv4iYINmFz0epApRgAxUGL.q8zx-BAd*\r\nRecord-Route: <sip:91.217.xx.yy:5070;transport=tls;lr;r2=on;ftag=304836990;nat=yes>\r\nRecord-Route: <sip:127.0.0.127;line=sr-wI0rGzQCjzsC8q3C8ANiGXskVZnO258r2-nUlapzwLWqBzbM2zWtwzbM2zWvVh45lXBr8LNA8zQEBLWiYa.mFuKA>\r\nCall-ID: 1675015211 at 192.168.88.25\r\nFrom: "222" <sip:222 at pbx.domain.tld>;tag=304836990\r\nTo: <sip:333 at pbx.domain.tld>;tag=0cd46e4d-0a5b-4574-8984-dbe7076db118\r\nCSeq: 2 INVITE\r\nServer: PBX\r\nAllow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REFER\r\nRemote-Party-ID: "phone3" <sip:333 at pbx.domain.tld>;party=called;privacy=off;screen=no\r\nContent-Length:  0\r\n\r\n=off;screen=no\r\nContent-Length:  0\r\n\r\n0\r\n\r\n\na=ptime:20\r\na=maxptime:150\r\na=sendre"
    parsed = 0x0000000802e93610 "\r\n\r\n2.0 487 Request Terminated\r\nVia: SIP/2.0/TLS 91.217.xx.yy:5070;rport=12181;received=91.217.xx.yy;branch=z9hG4bK6b3e.a1465b8bd9ff395e0dd82d3998ac2841.0;i=1\r\nVia: SIP/2.0/UDP 127.0.0.127;branch=z9hG4bKsr-TU0.jAsiBomT.bdNBXQqjzxIGo33Go3q8XebBLYqG-n0YIKJVvKQlXxrGg3-Bg3C8AQiBz.qGbpslupJVzWqwhmqVLUb8Lxr8zWRwv4iYINmFz0epApRgAxUGL.q8zx-BAd*\r\nRecord-Route: <sip:91.217.xx.yy:5070;transport=tls;lr;r2=on;ftag=304836990;nat=yes>\r\nRecord-Route: <sip:127.0.0.127;line=sr-wI0rGzQCjzsC8q3C8ANiGXskVZnO258r2-nUlapzwLWqBzbM2zWtwzbM2zWvVh45lXBr8LNA8zQEBLWiYa.mFuKA>\r\nCall-ID: 1675015211 at 192.168.88.25\r\nFrom: "222" <sip:222 at pbx.domain.tld>;tag=304836990\r\nTo: <sip:333 at pbx.domain.tld>;tag=0cd46e4d-0a5b-4574-8984-dbe7076db118\r\nCSeq: 2 INVITE\r\nServer: PBX\r\nAllow: OPTIONS, SUBSCRIBE, NOTIFY, PUBLISH, INVITE, ACK, BYE, CANCEL, UPDATE, PRACK, REFER\r\nRemote-Party-ID: "phone3" <sip:333 at pbx.domain.tld>;party=called;privacy=off;screen=no\r\nContent-Length:  0\r\n\r\n=off;screen=no\r\nContent-Length:  0\r\n\r\n0\r\n\r\n\na=ptime:20\r\na=maxptime:150\r\na=sendre"
    body = 0x0000000000000000 <no value available>
    b_size = 16383
    content_len = 0
    chunk_size = 0
    flags = 0
    bytes_to_go = 0
    error = TCP_REQ_OK
    state = H_SKIP_EMPTY
  }
  refcnt = (val = 0)
  type = PROTO_TLS
  flags = 296
  send_flags = (f = 4, blst_imask = 0)
  state = S_CONN_BAD
  extra_data = 0x0000000802e9b3a8
  timer = {
    next = 0x0000000000000000
    prev = 0x0000000000000000
    expire = 745506227
    initial_timeout = 9600
    data = 0x0000000802e93270
    f = 0x000000000060e510 (kamailio`tcpconn_main_timeout at tcp_main.c:4545)
    flags = 512
    slow_idx = 0
  }
  timeout = 745497609
  lifetime = 9600
  id_hash = 29
  id_next = 0x0000000000000000
  id_prev = 0x0000000000000000
  c_next = 0x0000000000000000
  c_prev = 0x0000000000000000
  con_aliases = {
    [0] = {
      parent = 0x0000000802e93270
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 5071
      hash = 1675
    }
    [1] = {
      parent = 0x0000000802e93270
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 5071
      hash = 1127
    }
    [2] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [3] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [4] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [5] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [6] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [7] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [8] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [9] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [10] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
    [11] = {
      parent = 0x0000000000000000
      next = 0x0000000000000000
      prev = 0x0000000000000000
      port = 0
      hash = 0
    }
  }
  aliases = 0
  wbuf_q = {
    first = 0x0000000000000000
    last = 0x0000000000000000
    wr_timeout = 0
    queued = 0
    offset = 0
    last_used = 0
  }
}
```
```
(lldb) p *tcp_c
(tcp_child) $1 = {
  pid = 51056
  proc_no = 30
  unix_sock = 50
  busy = 0
  mysocket = 0x0000000000000000
  n_reqs = 56
}
```

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/kamailio/kamailio/issues/2638#issuecomment-788865669
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-dev/attachments/20210302/d5c67f26/attachment-0001.htm>


More information about the sr-dev mailing list