ankitsultana opened a new pull request, #10425: URL: https://github.com/apache/pinot/pull/10425
We detected this issue due to a flaky test and there was a discussion on this in: #10417 Context: When there's an error, we try to send the error-block via MailboxSendOperator, and after it returns a cancellation is issued for the OpChain, which issues a cancellation for the `MailboxSendOperator` as well. On looking into the flaky test (which can be reproduced on local by running it separately in IntelliJ), I found that the receiving mailbox is never initialized for the broker's receiver. On looking further I saw that calling `StreamObserver#onNext` doesn't guarantee that the stream has been created. The onNext operation is queued in a executor (see `DelayedClientCall`), and if there's a concurrent cancellation before the queued request is processed, the stream would never get created and the receiver will be stuck waiting to be initialized because neither onNext, onError or onCompleted would be called on its end. In this patch I have introduced a stop-gap solution for this. For the full fix I have created this issue: #10424. I have been punting writing the design doc for this. I'll try to finish it this week. -- 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]
