Jackie-Jiang opened a new pull request, #8572:
URL: https://github.com/apache/pinot/pull/8572

   Fix the potential deadlock in `ClusterChangeMediator` between Helix callback 
handling thread and ClusterChangeMediator change handling thread when the 
ClusterChangeMediator is stopped.
   
   The deadlock chain is as following:
   - ClusterChangeMediator.stop() is called and waiting for the change handling 
thread to stop
   - Helix callback handling thread acquires a lock, then send a cluster change 
to the mediator which is blocked ClusterChangeMediator.stop() (both stop() and 
enqueueChange() are synchronized)
   - The change handling thread waits on the lock held by the Helix callback 
handling thread
   
   Changes:
   - Reduce the span of the synchronized block
   - Change the stop to use interrupt instead of notify
   - Add a test to guard the deadlock


-- 
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: commits-unsubscr...@pinot.apache.org

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


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

Reply via email to