Jackie-Jiang commented on code in PR #16899:
URL: https://github.com/apache/pinot/pull/16899#discussion_r2389484682
##########
pinot-query-runtime/src/main/java/org/apache/pinot/query/mailbox/GrpcSendingMailbox.java:
##########
@@ -305,6 +313,16 @@ static List<ByteString> toByteStrings(List<ByteBuffer>
bytes, int maxByteStringS
return result;
}
+ @Override
+ public void close()
+ throws Exception {
+ if (!isTerminated()) {
+ LOGGER.debug("Closing gPRC mailbox without proper EOS message");
+ _closeAttempted = true;
+ _contentObserver.onError(Status.CANCELLED.asException());
Review Comment:
I'm still not able to follow. Let's consider the following sequence of
execution:
- Receiver being setup
- Sender being setup and start sending blocks
- Blocks being queued in the receiving mailbox
- Sender finishes sending all data blocks, then it is closed and invokes
`onError()` (this itself might also be wrong because `onError()` shouldn't be
invoked after `onCompleted()`)
- Receiver getting the `onError()` callback, set error block into the
receiving mailbox
- Receiving mailbox will clear all the pending data blocks and directly fail
the query
Won't this fail the regular query flow?
--
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]