[ 
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 memory).

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 waiter)*/));
>         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
(v6.3.4#6332)

Reply via email to