"Pipe broken" IOExceptions countered on non-active stream connections
---------------------------------------------------------------------

         Key: DIRMINA-129
         URL: http://issues.apache.org/jira/browse/DIRMINA-129
     Project: Directory MINA
        Type: Bug
    Versions: 0.8.1    
 Environment: All
    Reporter: dave irving
 Assigned to: Trustin Lee 
    Priority: Minor


The StreamIOHandler implementation uses PipedInput/Output streams for providing 
read data.
PipedInputStream is quite strict about the relationship between the producer 
and consumer thread.
When blocking on a read, PipedInputStream checks every second to see if the 
last producer thread to write to it is still alive. If it detects that the 
producer thread is no longer alive, an IO Exception is thrown indicating "Pipe 
Broken".

This causes a problem in Mina becuase worker threads in the ThreadPoolFilter 
have a "keep alive time" (default is one second). So, if a user is blocked on a 
stream IO read (really a PipedInputStream), and the last ThreadPoolFilter 
thread which produced data for the stream idles out, the user encounters a 
"Pipe Broken" IOException (not related to session idle).

Users can currently work around the problem by increasing the keep-alive time 
on the ThreadPoolFilter.

My gut feeling is that ditching PipedInputStream / PipedOutputStream in favour 
of something more suited to Minas needs would be a good solution to the problem.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to