We are launching jBoss 5.1, which in turn uses the Tomcat servlet container.
We have seen cases where bad HTTP clients open a socket, make an HTTP request, do not read all the data, and cannot close the connection.
The result is that tomcat threads block endless writes to the output stream:
SocketOutputStream.socketWrite0(FileDescriptor, byte[], int, int) SocketOutputStream.socketWrite(byte[], int, int) SocketOutputStream.write(byte[], int, int) InternalOutputBuffer.realWriteBytes(byte[], int, int) ByteChunk.flushBuffer() ByteChunk.append(byte[], int, int) InternalOutputBuffer$OutputStreamOutputBuffer.doWrite(ByteChunk, Response) IdentityOutputFilter.doWrite(ByteChunk, Response) InternalOutputBuffer.doWrite(ByteChunk, Response) Response.doWrite(ByteChunk) OutputBuffer.realWriteBytes(byte[], int, int) ByteChunk.append(byte[], int, int) OutputBuffer.writeBytes(byte[], int, int) OutputBuffer.write(byte[], int, int) CoyoteOutputStream.write(byte[], int, int)
How to configure these connections for timeout?
source share