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

Paul Gregoire commented on DIRMINA-653:
---------------------------------------

Jens, you could also use a more 1.6+ solution by using a Semaphore with one 
permit and thread fairness enabled.
private Semaphore lock = new Semaphore(1, true);

try {
    lock.aquire();
    future = session.write(message);
} catch (Exception ex) {
    // log something
} finally {
    lock.release();
}

This would give the same effect as sync without any extra grief. Aquire also 
takes a timeout should that be needed.

                
> 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.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to