PK14478; 5.1.1.7: Error
java.net.sockettimeoutexception: timeout after PK08648
Downloadable files
Abstract
Frequent "IOException: Read timed out" messages in the
error or trace logs, especially from HttpRequest.finish().
Download Description
PK14478 resolves the following problem:
ERROR DESCRIPTION:
After applying 5.1.1.7, customer observes spate of IO Error
java.net.SocketTimeoutException: Read timed out
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:153)
com.ibm.ws.io.Stream.read(Stream.java:17)
com.ibm.ws.io.ReadStream.read(ReadStream.java:181)
com.ibm.ws.http.ContentLengthInputStream.read
(ContentLengthInputStream.java:48)
WASRUN read timed out SocketTimeoutException
LOCAL FIX:
PROBLEM SUMMARY
USERS AFFECTED:
All WebSphere® Application Server users at the V5.0.2.14 and V5.1.1.7
versions.
PROBLEM DESCRIPTION:
Frequent "IOException: Read timed out" messages in the error or trace
logs, especially from HttpRequest.finish().
RECOMMENDATION:
None
If an exception occurs in HttpRequest.finish() while trying to clean up
left over request data, the HTTP headers for the current request are not
deleted. Since the HttpRequest object is pooled and reused, this causes
subsequent requests to use HTTP headers from the previous request. The
main error is that the previous request was a POST request that included
some amount of data in the request body, thus the request included a
Content-Length and possibly Expect "100 Continue" header. The two main
errors this causes are:
First, the Application server will initially respond to the request with a
'100 Continue' response which the plugin or client can interpret as the
final response.
Second, the Application server will think that the request was supposed to
include a request body due to the Content-Length header and try to read
this during the finish phase of servlet processing and when cleaning up
the connection from HttpRequest.finish(). These reads will time out and
cause the errors described above.
PROBLEM CONCLUSION:
The processing in HttpRequest.finish() has been changed to insure that the
HTTP headers from the current request are cleaned up.
The fix for this APAR is currently targeted for inclusion in fix pack
V5.0.2.15 and V5.1.1.8.