[
https://issues.apache.org/jira/browse/DIRMINA-653?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12845212#action_12845212
]
Yannick Lecaillez commented on DIRMINA-653:
-------------------------------------------
Hi,
I got the same problem using CompressionFilter.
The problem come from CompressionFilter which is not thread safe. MINA
documentation
sates clearly that "IoSession is thread-safe. But please note that performing
more than one write(Object) calls at the same time will cause the
IoFilter.filterWrite(IoFilter.NextFilter,IoSession,WriteRequest) to be
executed simultaneously, and therefore you have to make sure the IoFilter
implementations you're using are thread-safe, too. "
The problem here is that zStream in CompressionFilter is not synchronized an
so, not thread-safe.
We fixed the problem simply by surrounding zStream access with a "synchronized"
in CompressionFilter.
Hope that helps,
Yannick.
> IoSession.write not thread-safe? Loosing messages under heavy multi-threaded
> write on same session.
> ---------------------------------------------------------------------------------------------------
>
> Key: DIRMINA-653
> URL: https://issues.apache.org/jira/browse/DIRMINA-653
> Project: MINA
> Issue Type: Bug
> Components: Core, Filter
> Affects Versions: 2.0.0-M4
> Environment: Windows Vista 64-bit
> Reporter: Mauritz Lovgren
> Fix For: 2.0.0-M5
>
>
> I am writing a stress-test that tests multi-thread safetyness of our
> stateless encoder / decoder under heavy load and I am observing that messages
> are silently lost during session.write(Object), (the lost messages do not
> seem to reach the underlying socket buffer at all).
> I am using one encoder / decoder that is stateless. No executor filter, only
> the filter codec and a basic io handler.
> Synchronizing on the session.write makes the problem go away;
> synchronized (session)
> {
> future = session.write(message);
> }
> Do I really have to synchronize on the session to solve this issue?
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.