[asterisk-bugs] [JIRA] (ASTERISK-25364) Issue a TCP connection(kernel) and thread of asterisk is not released

Hiroaki Komatsu (JIRA) noreply at issues.asterisk.org
Tue Sep 1 00:37:33 CDT 2015


Hiroaki Komatsu created ASTERISK-25364:
------------------------------------------

             Summary: Issue a TCP connection(kernel) and thread of asterisk is not released
                 Key: ASTERISK-25364
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-25364
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Channels/chan_sip/General
    Affects Versions: 11.2.0
         Environment: ・centOS 6.5(kernel-2.6.32-431.3.1.el6.x86_64)
・certified-asterisk-11.2-cert1
            Reporter: Hiroaki Komatsu


I have done tls communication using the asterisk at the wifi and 3G environment.Among them, the problem of unused tcp connection and threads is not released has occurred.
Specifically, the resource state on the asterisk environment was not released in the following situations.
 
・Command executed 
 #netstat -a | grep https
  →TCP connection is present.(kernel)
 #asterisk -rx "core show tcp"
  →TCP connection is not present.(asterisk)
 #asterisk -rx "core show threads" | grep ast_tcptls_server_root
  →Thread exists.(asterisk)
 
I will attach the results of each command
(Attached: tcp_connection_and_threads.txt)
After that, I check the following points first.
 
・Opportunity of event occurrence
 →TCP/TLS connection sequence has been interrupted(※)
   halfway for some reason(Attached: sequence.ppt)
   (※)After the TCP three handshake,
     client hello message from the terminal has not reached to the asterisk.
  
・The presence or absence of TCP keepalive delivery
 →TCP keepalive has not been sent.
   Kernel configuration attached.(Attached: sysctl.txt)
  
Then from the above results, we focus on tcp connection 
and tcp keepalive setting opportunity of asterisk,

it was done trace source, the actual confirmation.
>From this result, I think the cause of this problem as follows.

・asterisk it seems like after the connection is established is doing a 
 "count of tcp connection" and "Enabling tcp keepalive".
 
 Therefore, if the TCP/TLS connection sequence is interrupted in 
 the middle,asterisk is on to be a wait state in the thread, tcp keepalive
 also not been enabled.

The deal, I think should be done to enable the TCP keepalive 
immediately after tcp/tls socket generation.how is it.(Attached: keepalive.patch)



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



More information about the asterisk-bugs mailing list