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