[ https://issues.apache.org/jira/browse/HBASE-3939?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13143591#comment-13143591 ]
Gary Helmling commented on HBASE-3939: -------------------------------------- Would be easier to review if the latest patch was in review board. Here are comments from what I see: In {{HBaseServer}}: # In {{setupResponse()}} we take a {{Status}} instance (which is good), but it doesn't get passed back through to the client. If we're modifying the wire protocol to pass RPC version, I think we should also take advantage of the change to serialize {{Status}} back to the client. This allows the client to differentiate between fatal errors (authentication error, or bad rpc version) which should kill the connection, and request-specific errors. By the way, adding {{Status}} here allows me to remove it from the HBASE-2742 patch, which is great! In {{Invocation}}: # In the constructor: {code} rpcVersion = WritableRpcEngine.writableRpcVersion; {code} This binds {{Invocation}} unnecessarily to {{WritableRpcEngine}}. We've diverged a little from Hadoop RPC by making {{Invocation}} a top-level class, allowing it to be shared between RPC engine implementations, so this would undermine that. Since {{rpcVersion}} only seems to relate to {{Invocation}} serialization, why not just define {{RPC_VERSION}} as a static final constant on {{Invocation}}? Or alternately, couldn't we just make {{Invocation}} implement {{VersionedWritable}} and let that handle the check for us? Other than that, this patch looks fine to me. I've applied it together with the HBASE-2742 patch and run through a few of the tests, and so far seems to work fine. > Some crossports of Hadoop IPC fixes > ----------------------------------- > > Key: HBASE-3939 > URL: https://issues.apache.org/jira/browse/HBASE-3939 > Project: HBase > Issue Type: Bug > Affects Versions: 0.92.0 > Reporter: Todd Lipcon > Priority: Critical > Fix For: 0.92.0 > > Attachments: 3939-v2.txt, 3939-v3.txt, 3939-v4.txt, 3939-v5.txt, > 3939-v6.txt, 3939-v7.txt, 3939.txt > > > A few fixes from Hadoop IPC that we should probably cross-port into our copy: > - HADOOP-7227: remove the protocol version check at call time > - HADOOP-7146: fix a socket leak in server > - HADOOP-7121: fix behavior when response serialization throws an exception > - HADOOP-7346: send back nicer error response when client is using an out of > date IPC version -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira