Srujan Narkedamalli created AVRO-2180:
-----------------------------------------

             Summary: grpc-avro|Java: transport exceptions from client to 
server as Metadata in  
                 Key: AVRO-2180
                 URL: https://issues.apache.org/jira/browse/AVRO-2180
             Project: Avro
          Issue Type: Improvement
          Components: java
    Affects Versions: 1.8.2
            Reporter: Srujan Narkedamalli


Context:

Currently in grpc-avro library, avro RPC exceptions are transported to from 
server to client as part of a response (using a boolean field at the head of 
response payload to indicate whether its actual response or error) similar to 
avro-ipc's response serialization logic.

 Problem:

By encapsulating server exception as a regular response, its not visible for 
gRPC to know when an error response is being sent. And any error metrics 
computed gRPC on their stream listeners won't capture these errors.

Proposed Solution:

Send server error as io.grpc.StatusRuntimeException (which is perferred way of 
error), with appropriate Status code(probably Internal), and include the actual 
avro serialized error as Metadata attached to it.

Impact:

This would change RPC response wire format and won't be backward compatible.



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

Reply via email to