You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2014/09/05 14:16:28 UTC

[jira] [Resolved] (DIRMINA-639) WriteFuture are updated long after a session.write() is done

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

Emmanuel Lecharny resolved DIRMINA-639.
---------------------------------------
    Resolution: Won't Fix

This is not a bug. 

The correct way to handle such a situation is to handle the messageSent event in the IoHandler, and to write the next message when the messageSent event is received.

It might slow down the server, but it's still possible to send more than one message before waiting for the messageSent event.

> WriteFuture are updated long after a session.write() is done
> ------------------------------------------------------------
>
>                 Key: DIRMINA-639
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-639
>             Project: MINA
>          Issue Type: Bug
>    Affects Versions: 2.0.0-M3
>            Reporter: Emmanuel Lecharny
>            Priority: Blocker
>             Fix For: 2.0.8
>
>
> While expecting the writeFuture to be updated when the write has been done, it's done only when we get out of the chain. This is a major problem as you can't rely on this to bail a connection based on a slow client. Typically, we may stack thousands of message into the writeQueuebuffer, as the flush is only done when we have gone though the whole chain, and back.
> The only way to get the data be blushed immediately is to add an executorFilter on the WRITE eventType, in order to create a new thread to handle this flush, otherwise we have to wait for the current processor to be done with the chain processing.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)