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]

Reply via email to