[ 
https://issues.apache.org/jira/browse/DIRMINA-580?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12596582#action_12596582
 ] 

janardhanan vembunarayanan commented on DIRMINA-580:
----------------------------------------------------

Another way to fix this.

Added the following in the code "&& (handshakeStatus != 
SSLEngineResult.HandshakeStatus.FINISHED" in the else if block

I break the for(;;) if it is a BUFFER_UNDERFLOW and handshakeStatus != 
SSLEngineResult.HandshakeStatus.FINISHED so that the handshakecomplete flag is 
set on the next pass of the for loop and it breaks there.

This seems to be more cleaner fix for this case.

    public void handshake(NextFilter nextFilter) throws SSLException {

        for (;;) {
            ..
            else if (handshakeStatus == 
SSLEngineResult.HandshakeStatus.NEED_UNWRAP) {
                ...
                SSLEngineResult.Status status = unwrapHandshake(nextFilter);
                if ((status == SSLEngineResult.Status.BUFFER_UNDERFLOW && 
(handshakeStatus != SSLEngineResult.HandshakeStatus.FINISHED)) 
                        || isInboundDone()) {
                    // We need more data or the session is closed
                    break;
                }
        }


   }

> Session Idle times out when SSL is enabled
> ------------------------------------------
>
>                 Key: DIRMINA-580
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-580
>             Project: MINA
>          Issue Type: Bug
>          Components: Filter
>    Affects Versions: 1.0.9
>         Environment: Sun Solaris
>            Reporter: janardhanan vembunarayanan
>            Priority: Blocker
>         Attachments: session82.txt
>
>
> I have developed an HTTP Routing server using Mina 1.0.9 and I am using 
> SSLFilter for handling SSL Connections.
> 1. Using Jmeter as the client I am sending HTTPS requests to this server with 
> 5 threads.
> 2. For some of the requests(10%) the sessionCreated method on the Handler is 
> getting called and the data from the client is not read by the server.
> 3. sessionIdle() gets triggered and we close the connection. 
> This happens for the ssl connections only and when the server is trying to 
> resume the cached session.
> I enabled ssl debug using -Djavax.net.debug=all on the server and I got the 
> following logs for the failed sessions
> 0240: EB 3E 28 AD 97 20 36 B7   C0 35 4E 3E 80 71 88 99  %% Created:  
> [Session-17, SSL_RSA_WITH_RC4_128_MD5]
>  9uTWV0aG961 58 4Dk%% Cached server session: [Session-17, 
> SSL_RSA_WITH_RC4_128_MD5]
>  10   7A 0F 37 59C   66 D3 18 2A  2B 3144 1F 5 D9 16A EB 1 1F%% Resuming 
> [Session-17, SSL_RSA_WITH_RC4_128_MD5]
> org.apache.mina.filter.SSLFilter.SSLSession=[Session-17, 
> SSL_RSA_WITH_RC4_128_MD5]
> %% Invalidated:  [Session-17, SSL_RSA_WITH_RC4_128_MD5]
> Any ideas why this could happen?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to