[jboss-remoting-issues] [JBoss JIRA] (JBREM-1317) BisocketClientInvoker waits for failed clients

Ron Sigal (JIRA) jira-events at lists.jboss.org
Sat Feb 23 17:50:57 EST 2013


    [ https://issues.jboss.org/browse/JBREM-1317?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12756299#comment-12756299 ] 

Ron Sigal commented on JBREM-1317:
----------------------------------

I've been thinking about this issue, and I'm not convinced that anything needs to be done.

1. If there's a failure of a control connection, then there's always the possibility that a new one will be created, assuming that pinging is enabled for control connections. BisocketClientInvoker.createSocket() takes that possibility into account, checking for a new control connection each time around the loop.

2. If there's a more global problem, e.g., a network failure or a client getting shut down, then the Lease will time out and notify JBossMessaging, which will shut down the connection.

Doug, what do you think?
                
> BisocketClientInvoker waits for failed clients
> ----------------------------------------------
>
>                 Key: JBREM-1317
>                 URL: https://issues.jboss.org/browse/JBREM-1317
>             Project: JBoss Remoting
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: callbacks
>    Affects Versions: 2.5.4.SP3
>         Environment: JBoss EAP 5.1.2
>            Reporter: Doug Grove
>            Assignee: Ron Sigal
>            Priority: Minor
>
> When a client dies or is killed, the failure is actually detected in org.jboss.remoting.transport.socket.MicroSocketClientInvoker:
> (NEW ClientSocketWrapper[Socket[addr=/10.0.0.212,port=36600,localport=4458].d3e837]) got Exception: java.io.IOException: Broken pipe
> The "Broken pipe" exception means that the client has disconnected and can not return.  This exception is treated in the code a retry-able, however.
> The code carries on, finally calling BisocketClientInvoker.createSocket().  This code then waits for a socket to appear in a list.  I can see no way for a new socket to ever appear in the list.
> This results in the code waiting for the full duration of the configured timeout.   

--
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


More information about the jboss-remoting-issues mailing list