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

Stephen O'Donnell commented on HDDS-1258:
-----------------------------------------

I have submitted a pull request for this. Right now, the client does not see 
the benefit of this change. This is because the calls usually go:

Client -> OM -> SCM

At the moment the OM only translates error codes return from OMException and it 
does not have the logic to translate error codes from the SCM exception.

This change does leave us in a good position to create a followup Jira to 
ensure the OM can map the SCM Exceptions too. It is probably not overly 
complex, but its not as trivial as it sounds due to how the error codes are 
current mapped between the code in the exception object and the code in the 
protobuf messages.

> Fix error propagation for SCM protocol
> --------------------------------------
>
>                 Key: HDDS-1258
>                 URL: https://issues.apache.org/jira/browse/HDDS-1258
>             Project: Hadoop Distributed Data Store
>          Issue Type: Improvement
>            Reporter: Elek, Marton
>            Assignee: Stephen O'Donnell
>            Priority: Critical
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> HDDS-1068 fixed the error propagation between the OM client and OM server.
> By default the Server.java transforms all the IOExceptions to one string 
> (message + stack trace) and this is returned to the client.
> But for business exception (eg. volume not found, chill mode is active, etc.) 
> this is not what we need.
> In the OM side we fixed this behaviour. In the ServerSideTranslator classes 
> we catch (server) the business (OMException) exceptions and serialize them to 
> the response object.
> The exception (and the status code) is stored in message/status field of the 
> OMResponse (hadoop-ozone/common/src/main/proto/OzoneManagerProtocol.proto)
> Here I propose to do the same for the ScmBlockLocationProtocol.proto.
> Unfortunately there is no common parent object (like OMRequest) in this 
> protocol, but we can easily add one as only the Serverside/Clientside 
> translator should be changed for that. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to