mina-dev mailing list archives

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

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

Marat Gainullin commented on DIRMINA-1012:

I whant network IO to be done in parallel. If I put Executor filter after the SslFilter, than
SslFilter code will work in NioProcessor (network events discoverer) thread. I consider that
it will bite server performance.

> 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