Uploaded image for project: 'Apache Avro'
  1. Apache Avro
  2. AVRO-2180

grpc-avro|Java: transport exceptions from server to client as Metadata in io.grpc.StatusRuntimeException

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Open
    • Major
    • Resolution: Unresolved
    • 1.8.2
    • None
    • java
    • None

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            srujann Srujan Narkedamalli
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated: