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

Andrey Stepachev commented on HBASE-13646:
------------------------------------------

[~stack] we are exposing NameNodeProtocol as rpc endpoint in 
https://github.com/GiraffaFS/giraffa and stumbled on complex protobuf messages 
which need to be faked to be buildable even if rpc call was unsuccessfull. (for 
example if there some deep hierarchy of protobuf message with 'required' 
fields).
So that patch will allow to just throw IOException or DontRetryIOException and 
rpc handler will not fail with message that it can't build incomplete protobuf 
message.

> HRegion#execService should not try to build incomplete messages
> ---------------------------------------------------------------
>
>                 Key: HBASE-13646
>                 URL: https://issues.apache.org/jira/browse/HBASE-13646
>             Project: HBase
>          Issue Type: Bug
>          Components: Coprocessors, regionserver
>    Affects Versions: 2.0.0, 1.2.0, 1.1.1
>            Reporter: Andrey Stepachev
>            Assignee: Andrey Stepachev
>         Attachments: HBASE-13646.patch, HBASE-13646.v2.patch
>
>
> If some RPC service, called on region throws exception, execService still 
> tries to build Message. In case of complex messages with required fields it 
> complicates service code because service need to pass fake protobuf objects, 
> so they can be barely buildable. 
> To mitigate that I propose to check that controller was failed and return 
> null from call instead of failing with exception.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to