You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hc.apache.org by "Mauro Improta (JIRA)" <ji...@apache.org> on 2013/06/18 10:41:20 UTC

[jira] [Commented] (HTTPASYNC-39) SocketTimeoutException occurs too soon

    [ https://issues.apache.org/jira/browse/HTTPASYNC-39?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13686501#comment-13686501 ] 

Mauro Improta commented on HTTPASYNC-39:
----------------------------------------

I can confirm the issue.

Server: Linux  2.6.18-348.1.1.el5 #1 SMP Tue Jan 22 16:19:19 EST 2013 x86_64 x86_64 x86_64 GNU/Linux

AS: JBoss 7.1.1

Java version: 1.7.0_17

httpcore-nio version: 4.2.4

Timeout set: 5000ms, but the exception is thrown after one millisecond.

Every now and then such an exception is thrown (I improved the output with request data):

10:22:43,883 ERROR (I/O dispatcher 2)  request timestamp: 1371543763882 - Current timestamp: 1371543763883 - diff: 1:
java.net.SocketTimeoutException
        at org.apache.http.nio.protocol.HttpAsyncRequestExecutor.timeout(HttpAsyncRequestExecutor.java:289) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.DefaultHttpClientIODispatch.onTimeout(DefaultHttpClientIODispatch.java:136) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.DefaultHttpClientIODispatch.onTimeout(DefaultHttpClientIODispatch.java:50) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.AbstractIODispatch.timeout(AbstractIODispatch.java:169) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.sessionTimedOut(BaseIOReactor.java:257) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.timeoutCheck(AbstractIOReactor.java:494) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.validate(BaseIOReactor.java:207) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.AbstractIOReactor.execute(AbstractIOReactor.java:284) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.BaseIOReactor.execute(BaseIOReactor.java:106) [httpcore-nio-4.2.4.jar:4.2.4]
        at org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor$Worker.run(AbstractMultiworkerIOReactor.java:613) [httpcore-nio-4.2.4.jar:4.2.4]
        at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_17]

The request doesn't reach the counterpart.
                
> SocketTimeoutException occurs too soon
> --------------------------------------
>
>                 Key: HTTPASYNC-39
>                 URL: https://issues.apache.org/jira/browse/HTTPASYNC-39
>             Project: HttpComponents HttpAsyncClient
>          Issue Type: Bug
>    Affects Versions: 4.0-beta3
>            Reporter: Clinton Nielsen
>
> In a highly concurrent environment, where SocketTimeout is set to 30,000 milliseconds, we are often seeing a timeoutexception after only 0 or 1 or 2 milliseconds has actually passed.
> I get the impression that in the AbstractIOReactor timeoutCheck function, session.getLastAccessTime is being called on the session before the lastAccessTime is set on the session for the current session (ie. the lastAccessTime being retrieved is the time that was set on the session object for the previous http session)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org