Uploaded image for project: 'Tajo (Retired)'
  1. Tajo (Retired)
  2. TAJO-1563

Improve RPC error handling

    XMLWordPrintableJSON

Details

    Description

      Currently, RPC does not handle error for disconnection and a client does not throw if async RPC failed.
      for example. when a client calling and then it has lost a connection, callback has not been called.
      Callfuture.get() should throw ExecutionException and RPC client should handle a recoverable exception

      • Server internal exception handling
        • Application exceptions
          • send RemoteCallException to client
        • Unexpected exceptions (Server failure)
          • close current channel (client will receive channel inactive event)
      • Client internal exception handling
        • Add internal retry when a stub is failed by connection lost
        • Application exceptions
          • throw exception to callback
        • Max retry exceeded
          • throw RecoverableException to internal exception handler
        • Server hangs(server shutdown, OOM..)
          • trigger the ping expired event. and throw ServiceException
        • Unexpected exceptions (Client failure, connection lost)
          • throw exception to all callback

      Attachments

        1. TAJO-1563.patch
          146 kB
          Jinho Kim
        2. TAJO-1563_4.patch
          152 kB
          Jinho Kim
        3. TAJO-1563_3.patch
          152 kB
          Jinho Kim
        4. TAJO-1563_2.patch
          149 kB
          Jinho Kim

        Issue Links

          Activity

            People

              jhkim Jinho Kim
              jhkim Jinho Kim
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: