You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pinot.apache.org by GitBox <gi...@apache.org> on 2020/07/15 22:55:45 UTC

[GitHub] [incubator-pinot] Jackie-Jiang commented on a change in pull request #5705: Add error message to broker response in case of broker send error

Jackie-Jiang commented on a change in pull request #5705:
URL: https://github.com/apache/incubator-pinot/pull/5705#discussion_r455410039



##########
File path: pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
##########
@@ -39,6 +39,8 @@
   private final CountDownLatch _countDownLatch;
   private final long _maxEndTimeMs;
 
+  private Exception _brokerRequestSendException;

Review comment:
       Make it volatile? (Although it is always set and read by the same thread)

##########
File path: pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
##########
@@ -105,4 +107,12 @@ void markServerDown(ServerRoutingInstance serverRoutingInstance) {
       markQueryFailed();
     }
   }
+
+  public Exception getBrokerRequestSendException() {
+    return _brokerRequestSendException;
+  }
+
+  public void setBrokerRequestSendException(Exception brokerRequestSendException) {

Review comment:
       (nit) Package private?

##########
File path: pinot-common/src/main/java/org/apache/pinot/common/exception/QueryException.java
##########
@@ -125,8 +126,17 @@ public static void setMaxLinesOfStackTrace(int maxLinesOfStackTrace) {
   }
 
   public static ProcessingException getException(ProcessingException processingException, Exception exception) {
+    return getException(processingException, getTruncatedStackTrace(exception));
+  }
+
+  public static ProcessingException getException(ProcessingException processingException, String errorMessage) {
     String errorType = processingException.getMessage();
     ProcessingException copiedProcessingException = processingException.deepCopy();
+    copiedProcessingException.setMessage(errorType + ":\n" + errorMessage);
+    return copiedProcessingException;
+  }
+
+  public static String getTruncatedStackTrace(Exception exception) {

Review comment:
       Not sure if we should expose this method

##########
File path: pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/SingleConnectionBrokerRequestHandler.java
##########
@@ -114,6 +118,10 @@ protected BrokerResponse processBrokerRequest(long requestId, BrokerRequest orig
     brokerResponse.setNumServersQueried(numServersQueried);
     brokerResponse.setNumServersResponded(numServersResponded);
 
+    if (asyncQueryResponse.getBrokerRequestSendException() != null) {
+      String errorMsg = QueryException.getTruncatedStackTrace(asyncQueryResponse.getBrokerRequestSendException());
+      brokerResponse.addToExceptions(new QueryProcessingException(BROKER_REQUEST_SEND_ERROR_CODE, errorMsg));
+    }

Review comment:
       ```suggestion
       Exception brokerRequestSendException = asyncQueryResponse.getBrokerRequestSendException();
       if (brokerRequestSendException != null) {
         brokerResponse.addToExceptions(new QueryProcessingException(BROKER_REQUEST_SEND_ERROR_CODE, brokerRequestSendException));
       }
   ```




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@pinot.apache.org
For additional commands, e-mail: commits-help@pinot.apache.org