jadami10 commented on a change in pull request #7823:
URL: https://github.com/apache/pinot/pull/7823#discussion_r756409009
##########
File path:
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BaseBrokerRequestHandler.java
##########
@@ -456,10 +456,18 @@ private BrokerResponseNative handleSQLRequest(long
requestId, String query, Json
int numUnavailableSegments = unavailableSegments.size();
requestStatistics.setNumUnavailableSegments(numUnavailableSegments);
+ List<QueryProcessingException> exceptions = new ArrayList<>();
+ if (numUnavailableSegments > 0) {
+ exceptions.add(new
QueryProcessingException(QueryException.BROKER_SEGMENT_UNAVAILABLE_ERROR_CODE,
+ String.format("%d segments %s unavailable", numUnavailableSegments,
unavailableSegments)));
+ }
Review comment:
The only downside of this is under the hood, `getException` does
```
String errorType = processingException.getMessage();
ProcessingException copiedProcessingException =
processingException.deepCopy();
copiedProcessingException.setMessage(errorType + ":\n" + errorMessage);
return copiedProcessingException;
```
which is setting the error message to `"message": "null:\n1 segments
[meetupRsvp_REALTIME_1637786040816_0__0__1637786041067] unavailable"`. The
`null:\n` looks weird. I could make that code not do that on nulls, but I have
no idea what else changes at that point.
##########
File path:
pinot-broker/src/main/java/org/apache/pinot/broker/requesthandler/BaseBrokerRequestHandler.java
##########
@@ -456,10 +456,18 @@ private BrokerResponseNative handleSQLRequest(long
requestId, String query, Json
int numUnavailableSegments = unavailableSegments.size();
requestStatistics.setNumUnavailableSegments(numUnavailableSegments);
+ List<QueryProcessingException> exceptions = new ArrayList<>();
+ if (numUnavailableSegments > 0) {
+ exceptions.add(new
QueryProcessingException(QueryException.BROKER_SEGMENT_UNAVAILABLE_ERROR_CODE,
+ String.format("%d segments %s unavailable", numUnavailableSegments,
unavailableSegments)));
+ }
+
if (offlineBrokerRequest == null && realtimeBrokerRequest == null) {
LOGGER.info("No server found for request {}: {}", requestId, query);
_brokerMetrics.addMeteredTableValue(rawTableName,
BrokerMeter.NO_SERVER_FOUND_EXCEPTIONS, 1);
- return BrokerResponseNative.EMPTY_RESULT;
+ BrokerResponseNative brokerResponse = BrokerResponseNative.EMPTY_RESULT;
+ brokerResponse.addToExceptions(exceptions);
+ return brokerResponse;
Review comment:
oof, good catch.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]