[ 
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

        

Reply via email to