[
https://issues.apache.org/jira/browse/DIRMINA-894?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13422354#comment-13422354
]
Waleed Basheer commented on DIRMINA-894:
----------------------------------------
There was also another exception:
org.apache.mina.core.write.WriteToClosedSessionException: null
at
org.apache.mina.core.polling.AbstractPollingIoProcessor.clearWriteRequestQueue(AbstractPollingIoProcessor.java:641)
> java.io.IOException: Broken Pipe infinite loop
> ----------------------------------------------
>
> Key: DIRMINA-894
> URL: https://issues.apache.org/jira/browse/DIRMINA-894
> Project: MINA
> Issue Type: Bug
> Components: Core
> Affects Versions: 2.0.4
> Reporter: Yannick Lecaillez
> Priority: Critical
> Fix For: 2.0.5
>
>
> An infinite java.io.IOException can occurs in when a session.close(false) is
> called in a IoFilter.exceptionCaught().
> Indeed:
> AbstractPollingIoProcessor.flush(time) (line 777):
> This method flush all sessions contained in flushingSession. It does that
> until there is no more flushingSession
> AbstractPollingIoProcessor.flushNow(session,time) (line 832):
> Process write request.
> If an exception occurs during the write, IoFilter.exceptionCaught() is
> called ;
> IoFilter.exceptionCaught() (user code):
> call session.close(false);
> AbstractIoSession.close(false): (line 286) call closeOnFlush()
> AbstractIoSession.closeOnFlush() :
> add a CLOSE_REQUEST into the WriteQueue and flush() the session.
> this session is then appended to the flushingSessions.
>
> Since the exception handling code in flushNow() doesn't reset the
> session.getCurrentWriteRequest(), the writeRequestQueue is never polled and
> the processor will try to process the same write request infinitly.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira