[ 
https://issues.apache.org/jira/browse/TAJO-1563?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jinho Kim updated TAJO-1563:
----------------------------
    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


  was:
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
** Unhandled 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
** Unhandled exceptions (Client failure, connection lost)
*** throw exception to all callback



> Improve RPC error handling
> --------------------------
>
>                 Key: TAJO-1563
>                 URL: https://issues.apache.org/jira/browse/TAJO-1563
>             Project: Tajo
>          Issue Type: Improvement
>          Components: query master, rpc, tajo master, worker
>            Reporter: Jinho Kim
>            Assignee: Jinho Kim
>         Attachments: TAJO-1563.patch, TAJO-1563_2.patch
>
>
> 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



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to