mina-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DIRMINA-1012) SSLFilter does not work in combination with ExecutorFilter
Date Thu, 04 Jun 2015 11:21:38 GMT

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

Emmanuel Lecharny commented on DIRMINA-1012:

I read you.

Now consider this : you will use a single selector for incoming connections, no matter what.
When the initial SSL handshake is done, encrypting/decrypting the data is not really problematic,
compared to any of the processing you are likely to do on your backend (it's pure CPU and

Have you already seing that as being a bottleneck ?

That being said, you are right : the SSL Filter should work behind the executor filter. Do
you have more info about what's wrong when it's not working ?

> SSLFilter does not work in combination with ExecutorFilter
> ----------------------------------------------------------
>                 Key: DIRMINA-1012
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1012
>             Project: MINA
>          Issue Type: Bug
>          Components: Filter, SSL
>    Affects Versions: 2.0.9
>         Environment: Windows 7 x32
> Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
> Java HotSpot(TM) Client VM (build 25.45-b02, mixed mode, sharing)
>            Reporter: Marat Gainullin
> If i include SslFilter after the ExecutorFilter in acceptor filter chain, than SslFilter
works unstable. It works sometimes and sometimes it doesn't work. It is likely because of
multithreaded environment.
> If I move it on top of the filter chain, it works fine.
> Here is buggy filter chain:
> {code}
>         final IoAcceptor acceptor = new NioSocketAcceptor(executor/*Some outer thread
pool*/, new NioProcessor(ioProcessorExecutor/*thread pool with only one thread (nio events
>         acceptor.getFilterChain().addLast("executor", new ExecutorFilter(executor, IoEventType.EXCEPTION_CAUGHT,
>                 IoEventType.MESSAGE_RECEIVED, IoEventType.MESSAGE_SENT, IoEventType.SESSION_CLOSED));
>         acceptor.getFilterChain().addLast("encryption", sslFilter);
>         acceptor.getFilterChain().addLast("platypusCodec", new ProtocolCodecFilter(new
ResponseEncoder(), new RequestDecoder()));
>         PlatypusRequestsHandler handler = new PlatypusRequestsHandler(this);
>         acceptor.setHandler(handler);
> {code}
> I think that SslFilter have to work properly in multithreaded environment, but it doesn't.

This message was sent by Atlassian JIRA

View raw message