directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "dave irving (JIRA)" <>
Subject [jira] Created: (DIRMINA-129) "Pipe broken" IOExceptions countered on non-active stream connections
Date Fri, 25 Nov 2005 08:27:56 GMT
"Pipe broken" IOExceptions countered on non-active stream connections

         Key: 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
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:
For more information on JIRA, see:

View raw message