You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@drill.apache.org by "Deneche A. Hakim (JIRA)" <ji...@apache.org> on 2015/12/14 22:41:46 UTC

[jira] [Created] (DRILL-4197) RpcBus.run() only sends a failure when a UserRpcException is caught

Deneche A. Hakim created DRILL-4197:
---------------------------------------

             Summary: RpcBus.run() only sends a failure when a UserRpcException is caught
                 Key: DRILL-4197
                 URL: https://issues.apache.org/jira/browse/DRILL-4197
             Project: Apache Drill
          Issue Type: Bug
          Components: Execution - RPC
    Affects Versions: 1.3.0
            Reporter: Deneche A. Hakim


RpcBus.run is implemented as follows:
{code}
    public void run() {
      try {
        handle(connection, rpcType, pBody, dBody, sender);
      } catch (UserRpcException e) {
        sender.sendFailure(e);
      } catch (Exception e) {
        logger.error("Failure while handling message.", e);
      }finally{
        if(pBody != null){
          pBody.release();
        }

        if(dBody != null){
          dBody.release();
        }
      }
    }
{code}

If an exception is thrown that is not a {{UserRpcException}}, it will just be logged and won't be propagated to the sender as a failure.

For example, if we are starting a remote leaf fragment and we get an InvalidProtobufException, the Foreman will never be notified that the leaf failed to start, and the query hangs forever.



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