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