GitHub user shinrich opened a pull request:

    https://github.com/apache/trafficserver/pull/669

    TS-4661: SSL Client Connections not closed.

    Ultimately the issue was that SSL connections that stall in the 
ProtocolTrampoline never have the inactivity timeout cleanup.  The problem was 
introduced in 6.0.0 due to an unfortunately interaction between the addition of 
the ssl_handshake_timeout_in and inactivity_timeout mechanism.  
    
    The problem occurs when ssl_handshake_timeout_in is set to 0, which is the 
scenario that @bcall and I were testing.  This causes 
vc->set_inactivity_timeout(0) to be called.  This sets 
vc->inactivity_timeout_in to 0 and vc->next_inactivity_timeout_at to current 
time.
    
    Looking at UnixNetVConnection::mainEvent, the inactivity timeout event is 
not propagate if inactivity_timeout_in is 0 even if next_inactivity_timeout_at 
is non-zero and less than the current time.
    
    Looking at check_inactivity, if next_inactivity_timeout_at is 0, it will 
call vc->set_inactivity_timeout with the default_inactivity_timeout.
    
    But since next_inactivity_timeout_at is not 0, the default is never set and 
inactivity_timeout_in is never set to non-zero, so the inactivity_timeout 
signal is never propagated and thus the connection is never closed.
    I adjusted set_inactivity_timeout to not set the next_inactivity_timeout_at 
if the argument is 0.  This fix has been tested in production against the 6.2 
code, and the client connections all close after the box is removed from 
traffic.
    
    This patch also includes a fix to add the Http1ClientSessions to the 
appropriate _queues.  That fix will be needed eventually, but wasn't essential 
for this particular scenario.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/shinrich/trafficserver ts-4461

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/trafficserver/pull/669.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #669
    
----
commit a559295f4c36677e1f8044ac259591ce5bb48830
Author: Susan Hinrichs <shinr...@ieee.org>
Date:   2016-05-26T02:09:48Z

    TS-4661: SSL Client Connections not closed.

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to