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)

Reply via email to