[
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
** 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
was:
Tajo RPC does not handling network hangs.
A remote method is called to remote, and then channel is disconnected. in the
end a callback is never called.
{{Callfuture.get()}} should throw {{ExecutionException}} and RPC client should
handle a recoverable exception
> Add disconnected network handling in RPC
> ----------------------------------------
>
> 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
>
> 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
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)