[jboss-remoting-issues] [JBoss JIRA] Commented: (JBREM-1230) Client hangs when hitting MaxPoolSize with idleTimeout
Ron Sigal (JIRA)
jira-events at lists.jboss.org
Fri Jul 30 16:17:49 EDT 2010
[ https://jira.jboss.org/browse/JBREM-1230?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12542287#action_12542287 ]
Ron Sigal commented on JBREM-1230:
----------------------------------
The problem is that SocketServerInvoker calls LRUPool.evict() to try to get a reusable ServerThread, but LRUPool.evict() just tries the least recently used thread. It's possible that the least recently used thread is in the middle of a long running invocation and that IdleTimerTask could shut down some other thread in the meantime.
The solution is for IdleTimerTask to call clientpool.notify() after it shuts down a thread. The solution has been committed.
Unit test: org.jboss.test.remoting.transport.socket.IdleTimerTaskNotifyTestCase.
Waiting from results in hudson.
> Client hangs when hitting MaxPoolSize with idleTimeout
> ------------------------------------------------------
>
> Key: JBREM-1230
> URL: https://jira.jboss.org/browse/JBREM-1230
> Project: JBoss Remoting
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 2.2.2.SP9, 2.2.3.SP1
> Reporter: Takayoshi Kimura
> Assignee: Ron Sigal
> Fix For: 2.2.3.SP3
>
>
> 1. In SocketServerInvoker.processInvocation(), clientpool.wait() is called when hitting MaxPoolSize
> 2. SocketServerInvoker$IdleTimerTask calls ServerThread.shutdown() and remove it from clientpool when it's timed out in idle state
> 3. ServerThread.shutdown() doesn't call clientpool.notify(), so #1 doesn't resume although there is free slot available
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the jboss-remoting-issues
mailing list