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