[
https://issues.apache.org/jira/browse/TAJO-1563?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14516747#comment-14516747
]
Hudson commented on TAJO-1563:
------------------------------
SUCCESS: Integrated in Tajo-master-build #690 (See
[https://builds.apache.org/job/Tajo-master-build/690/])
TAJO-1563: Improve RPC error handling. (jinho) (jhkim: rev
2e7d03dff9480ecb7a4e4ed09a5578ba618de2ae)
*
tajo-rpc/tajo-rpc-protobuf/src/test/java/org/apache/tajo/rpc/TestRpcClientManager.java
* tajo-core/src/main/java/org/apache/tajo/worker/WorkerHeartbeatService.java
* tajo-core/src/main/java/org/apache/tajo/querymaster/QueryMaster.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ConnectionCloseFutureListener.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ProtoDeclaration.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/AsyncRpcClient.java
* CHANGES
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/BlockingRpcClient.java
*
tajo-rpc/tajo-rpc-protobuf/src/test/java/org/apache/tajo/rpc/test/impl/DummyProtocolBlockingImpl.java
* tajo-core/src/main/java/org/apache/tajo/master/TajoMaster.java
* tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/CallFuture.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/RpcClientManager.java
* tajo-core/src/main/java/org/apache/tajo/master/rm/TajoResourceTracker.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ProtoClientChannelInitializer.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/BlockingRpcServer.java
* tajo-rpc/tajo-rpc-common/src/main/java/org/apache/tajo/rpc/RpcConstants.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ProtoChannelInitializer.java
* tajo-core/src/main/java/org/apache/tajo/ws/rs/responses/WorkerResponse.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/DefaultRpcController.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/MonitorServerHandler.java
* tajo-core/src/main/java/org/apache/tajo/worker/ExecutionBlockContext.java
* tajo-client/src/main/java/org/apache/tajo/client/SessionConnection.java
* tajo-core/src/main/java/org/apache/tajo/worker/TaskRunner.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ChannelEventListener.java
*
tajo-rpc/tajo-rpc-protobuf/src/test/java/org/apache/tajo/rpc/TestBlockingRpc.java
* tajo-rpc/tajo-rpc-protobuf/src/test/java/org/apache/tajo/rpc/TestAsyncRpc.java
*
tajo-rpc/tajo-rpc-common/src/main/java/org/apache/tajo/rpc/RpcChannelFactory.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/AsyncRpcServer.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/MonitorStateEvent.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/MonitorClientHandler.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/ProtoServerChannelInitializer.java
* tajo-core/src/main/java/org/apache/tajo/worker/TajoResourceAllocator.java
* tajo-core/src/main/java/org/apache/tajo/worker/TajoWorker.java
*
tajo-rpc/tajo-rpc-protobuf/src/test/java/org/apache/tajo/rpc/test/impl/DummyProtocolAsyncImpl.java
*
tajo-core/src/main/java/org/apache/tajo/ws/rs/responses/WorkerConnectionInfoResponse.java
* tajo-core/src/main/java/org/apache/tajo/ws/rs/resources/DatabasesResource.java
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/NettyClientBase.java
* tajo-rpc/tajo-rpc-protobuf/src/main/proto/TestProtocol.proto
*
tajo-rpc/tajo-rpc-protobuf/src/main/java/org/apache/tajo/rpc/RecoverableException.java
> 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
> Fix For: 0.11.0
>
> Attachments: TAJO-1563.patch, TAJO-1563_2.patch, TAJO-1563_3.patch,
> TAJO-1563_4.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)