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

Nicolas Liochon commented on HBASE-11835:
-----------------------------------------

Close to this code, I guess we have another bug

{code}
        if (e instanceof SocketTimeoutException) {
          // Clean up open calls but don't treat this as a fatal condition,
          // since we expect certain responses to not make it by the specified
          // {@link ConnectionId#rpcTimeout}.
{code}

If we have a SocketTimeoutException once we started to read, we need to close 
the connection as it means we have a call half read (and hence the next call 
read will start in the middle of another one). Do you agree? If yes I will fix 
it as well...

> Wrong managenement of non expected calls in the client
> ------------------------------------------------------
>
>                 Key: HBASE-11835
>                 URL: https://issues.apache.org/jira/browse/HBASE-11835
>             Project: HBase
>          Issue Type: Bug
>          Components: Client
>    Affects Versions: 1.0.0, 2.0.0, 0.98.6
>            Reporter: Nicolas Liochon
>            Assignee: Nicolas Liochon
>             Fix For: 1.0.0, 2.0.0, 0.98.7
>
>         Attachments: rpcClient.patch
>
>
> If a call is purged or canceled we try to skip the reply from the server, but 
> we read the wrong number of bytes so we corrupt the tcp channel. It's hidden 
> as it triggers retry and so on, but it's bad for performances obviously.
> It happens with cell blocks.
> [~ram_krish_86], [~saint....@gmail.com], you know this part better than me, 
> do you agree with the analysis and the patch?
> The changes in rpcServer are not fully related: as the client close the 
> connections in such situation, I observed  both ClosedChannelException and 
> CancelledKeyException. 



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to