[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 06:58:32 CDT 2015


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

Hiroaki Komatsu updated ASTERISK-25364:
---------------------------------------

    Description: 
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 to have done the "addition of TCP connection" and "TCP Enable keepalive" after the connection establishment.
 
 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)

  was:
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 to have done the "addition of TCP connection" and "TCP Enable keep alive" after the connection establishment.
 
 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)


> 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
>         Attachments: sequence.ppt, sysctl.txt, tcp_connection_and_threads.txt, tcp_keepalive.patch
>
>
> 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 to have done the "addition of TCP connection" and "TCP Enable keepalive" after the connection establishment.
>  
>  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