[jira] [Created] (DIRMINA-1153) MINA: Exception thrown at the client side - ProtocolDecoderException:BufferDataException

2021-12-02 Thread Saravanan (Jira)
Saravanan created DIRMINA-1153:
--

 Summary: MINA: Exception thrown at the client side - 
ProtocolDecoderException:BufferDataException
 Key: DIRMINA-1153
 URL: https://issues.apache.org/jira/browse/DIRMINA-1153
 Project: MINA
  Issue Type: Bug
  Components: Handler
Affects Versions: 2.0.19
Reporter: Saravanan


Mina version:

mina-core-2.0.19.jar

Server code snippet:
        IoAcceptor acceptor = new NioSocketAcceptor();
        DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();

        LoggingFilter loggingFilter = new LoggingFilter();
        loggingFilter.setMessageSentLogLevel(LogLevel.DEBUG);
        loggingFilter.setMessageReceivedLogLevel(LogLevel.DEBUG);
        loggingFilter.setSessionClosedLogLevel(LogLevel.DEBUG);
        loggingFilter.setSessionCreatedLogLevel(LogLevel.DEBUG);
        loggingFilter.setSessionIdleLogLevel(LogLevel.DEBUG);
        loggingFilter.setSessionOpenedLogLevel(LogLevel.DEBUG);
        chain.addLast("logger", loggingFilter);

        MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
        chain.addLast("mdc", mdcInjectionFilter);
        chain.addLast("codec", new ProtocolCodecFilter(new 
ObjectSerializationCodecFactory()));

Client code snippet:
        NioSocketConnector connector = new NioSocketConnector();
        LoggingFilter LOGGING_FILTER = new LoggingFilter("MinaLogging");
        LOGGING_FILTER.setMessageSentLogLevel(LogLevel.DEBUG);
        LOGGING_FILTER.setMessageReceivedLogLevel(LogLevel.DEBUG);
        
        IoFilter CODEC_FILTER = new ProtocolCodecFilter(new 
ObjectSerializationCodecFactory());

        connector.getFilterChain().addLast("mdc", new MdcInjectionFilter());
        connector.getFilterChain().addLast("codec", CODEC_FILTER);
        connector.getFilterChain().addLast("logger", LOGGING_FILTER);

Exception:
org.apache.mina.filter.codec.ProtocolDecoderException: 
org.apache.mina.core.buffer.BufferDataException: dataLength: 1048985 (Hexdump: 
XX...)
at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:262)
 [mina-core-2.0.19.jar:?]
at 
org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:180)
 ~[mina-core-2.0.19.jar:?]
at 
org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:253)
 ~[mina-core-2.0.19.jar:?]

Points:
- There is no synchronization while writing...
- There are multiple threads parallely wirting into the tcp connection (around 
100-200)
- The problem is observed only when the load is high...

I have seen similar tickets here and not sure about the RCA.
https://issues.apache.org/jira/browse/DIRMINA-653


Need help...



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

-
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org



Re: [VOTE] Mina SSHD 2.8.0

2021-12-02 Thread Lyor Goldstein
+1



I've staged a release candidate at
   https://repository.apache.org/content/repositories/orgapachemina-1061
GIt Tag:
  https://github.com/apache/mina-sshd/releases/tag/sshd-2.8.0
Issues solved:
https://issues.apache.org/jira/issues/?jql=project%20%3D%20SSHD%20AND%20fixVersion%20%3D%202.8.0


Re: Q: Release SSHD 2.7.1 ?

2021-12-02 Thread Lyor Goldstein
Sorry, for some reason I missed it - I vote +1

>> The vote was started a few days ago:

http://mail-archives.apache.org/mod_mbox/mina-dev/202111.mbox/%3cCAA66TppR9cKQtWiYzmPm5hCPG=rhwugsnfhe0-jk0geryuw...@mail.gmail.com%3e


[jira] [Commented] (DIRMINA-1152) IoServiceStatistics introduces huge latencies

2021-12-02 Thread Jonathan Valliere (Jira)


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

Jonathan Valliere commented on DIRMINA-1152:


PRs are welcome

> IoServiceStatistics introduces huge latencies
> -
>
> Key: DIRMINA-1152
> URL: https://issues.apache.org/jira/browse/DIRMINA-1152
> Project: MINA
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 2.1.4, 2.1.5
>Reporter: Dmitrii Novikov
>Priority: Major
>
> Current implementation of IoServiceStatistics is blocking - it blocks on 
> _throughputCalculationLock_ for almost all operations
> However, _IoServiceStatistics_ is used by all threads which writes to 
> _IoSession_ and by all _NioProcessor_ threads.
> Blocking _IoServiceStatistics_ dramatically decreases performance in case of 
> multithreaded writing to {_}IoSession{_}.
> Please, refer to my 
> [benchmark|https://github.com/dmitriinovikov/apache-mina-benchmark] to ensure 
> that it is so. The measurements are taken between the time the message was 
> written to _IoSession_ by client and the time when it was actually sent to 
> the server by _NioProcessor._ Latency percentiles are calculated for all 
> messages except the first 20% - consider it as a warmup. You can read about 
> benchmark details in the README file.
>  
> My benchmark results:
> {code:java}
> # non-blocking IoServiceStatistics vs blocking IoServiceStatistics:
> p50: 85mcs vs 140mcs
> p75: 150mcs vs 400mcs
> p90: 239mcs vs 905mcs
> p95: 319mcs vs 1418mcs
> p99: 1311mcs vs 11485mcs {code}
>  
> As a simple workaround solution, I would suggest to add an option to disable 
> _IoServiceStatistics_ or replace it with custom implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

-
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org



[jira] [Updated] (DIRMINA-1152) IoServiceStatistics introduces huge latencies

2021-12-02 Thread Dmitrii Novikov (Jira)


 [ 
https://issues.apache.org/jira/browse/DIRMINA-1152?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Dmitrii Novikov updated DIRMINA-1152:
-
Description: 
Current implementation of IoServiceStatistics is blocking - it blocks on 
_throughputCalculationLock_ for almost all operations

However, _IoServiceStatistics_ is used by all threads which writes to 
_IoSession_ and by all _NioProcessor_ threads.

Blocking _IoServiceStatistics_ dramatically decreases performance in case of 
multithreaded writing to {_}IoSession{_}.

Please, refer to my 
[benchmark|https://github.com/dmitriinovikov/apache-mina-benchmark] to ensure 
that it is so. The measurements are taken between the time the message was 
written to _IoSession_ by client and the time when it was actually sent to the 
server by _NioProcessor._ Latency percentiles are calculated for all messages 
except the first 20% - consider it as a warmup. You can read about benchmark 
details in the README file.

 

My benchmark results:
{code:java}
# non-blocking IoServiceStatistics vs blocking IoServiceStatistics:

p50: 85mcs vs 140mcs
p75: 150mcs vs 400mcs
p90: 239mcs vs 905mcs
p95: 319mcs vs 1418mcs
p99: 1311mcs vs 11485mcs {code}
 

As a simple workaround solution, I would suggest to add an option to disable 
_IoServiceStatistics_ or replace it with custom implementation.

  was:
Current implementation of IoServiceStatistics is blocking - it blocks on 
_throughputCalculationLock_ for almost all operations

However, _IoServiceStatistics_ is used by all threads which writes to 
_IoSession_ and by all _NioProcessor_ threads.

Blocking _IoServiceStatistics_ dramatically decreases performance in case of 
multithreaded writing to {_}IoSession{_}.

Please, refer to my 
[benchmark|https://github.com/dmitriinovikov/apache-mina-benchmark] to ensure 
that it is so. The measurements are taken between the time the message was 
written to _IoSession_ by client and the time when it was actually sent to the 
server by _NioProcessor._ Latency percentiles are calculated for all messages 
except the first 20% - consider it as a warmup. 

My benchmark results:
{code:java}
# non-blocking IoServiceStatistics vs blocking IoServiceStatistics:

p50: 85mcs vs 140mcs
p75: 150mcs vs 400mcs
p90: 239mcs vs 905mcs
p95: 319mcs vs 1418mcs
p99: 1311mcs vs 11485mcs {code}
 

As a simple workaround solution, I would suggest to add an option to disable 
_IoServiceStatistics_ or replace it with custom implementation.


> IoServiceStatistics introduces huge latencies
> -
>
> Key: DIRMINA-1152
> URL: https://issues.apache.org/jira/browse/DIRMINA-1152
> Project: MINA
>  Issue Type: Bug
>  Components: Core
>Affects Versions: 2.1.4, 2.1.5
>Reporter: Dmitrii Novikov
>Priority: Major
>
> Current implementation of IoServiceStatistics is blocking - it blocks on 
> _throughputCalculationLock_ for almost all operations
> However, _IoServiceStatistics_ is used by all threads which writes to 
> _IoSession_ and by all _NioProcessor_ threads.
> Blocking _IoServiceStatistics_ dramatically decreases performance in case of 
> multithreaded writing to {_}IoSession{_}.
> Please, refer to my 
> [benchmark|https://github.com/dmitriinovikov/apache-mina-benchmark] to ensure 
> that it is so. The measurements are taken between the time the message was 
> written to _IoSession_ by client and the time when it was actually sent to 
> the server by _NioProcessor._ Latency percentiles are calculated for all 
> messages except the first 20% - consider it as a warmup. You can read about 
> benchmark details in the README file.
>  
> My benchmark results:
> {code:java}
> # non-blocking IoServiceStatistics vs blocking IoServiceStatistics:
> p50: 85mcs vs 140mcs
> p75: 150mcs vs 400mcs
> p90: 239mcs vs 905mcs
> p95: 319mcs vs 1418mcs
> p99: 1311mcs vs 11485mcs {code}
>  
> As a simple workaround solution, I would suggest to add an option to disable 
> _IoServiceStatistics_ or replace it with custom implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

-
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org



[jira] [Created] (DIRMINA-1152) IoServiceStatistics introduces huge latencies

2021-12-02 Thread Dmitrii (Jira)
Dmitrii created DIRMINA-1152:


 Summary: IoServiceStatistics introduces huge latencies
 Key: DIRMINA-1152
 URL: https://issues.apache.org/jira/browse/DIRMINA-1152
 Project: MINA
  Issue Type: Bug
  Components: Core
Affects Versions: 2.1.4, 2.1.5
Reporter: Dmitrii


Current implementation of IoServiceStatistics is blocking - it blocks on 
_throughputCalculationLock_ for almost all operations

However, _IoServiceStatistics_ is used by all threads which writes to 
_IoSession_ and by all _NioProcessor_ threads.

Blocking _IoServiceStatistics_ dramatically decreases performance in case of 
multithreaded writing to {_}IoSession{_}.

Please, refer to my 
[benchmark|https://github.com/dmitriinovikov/apache-mina-benchmark] to ensure 
that it is so. The measurements are taken between the time the message was 
written to _IoSession_ by client and the time when it was actually sent to the 
server by _NioProcessor._ Latency percentiles are calculated for all messages 
except the first 20% - consider it as a warmup. 

My benchmark results:
{code:java}
# non-blocking IoServiceStatistics vs blocking IoServiceStatistics:

p50: 85mcs vs 140mcs
p75: 150mcs vs 400mcs
p90: 239mcs vs 905mcs
p95: 319mcs vs 1418mcs
p99: 1311mcs vs 11485mcs {code}
 

As a simple workaround solution, I would suggest to add an option to disable 
_IoServiceStatistics_ or replace it with custom implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

-
To unsubscribe, e-mail: dev-unsubscr...@mina.apache.org
For additional commands, e-mail: dev-h...@mina.apache.org