Jackie-Jiang opened a new pull request, #16279: URL: https://github.com/apache/pinot/pull/16279
We run into a deadlock situation between consumer thread and helix thread handling CONSUMING -> ONLINE state transition. Assume T1 is the consumer thread, T2 is the helix thread. Timeline: - T2 acquires the segment lock - T2 tries to interrupt T1, and waits for T1 to terminate - T1 swallows the interrupt somehow (potentially in `postSegmentConsumedMsg()`) - T1 tries to acquire the segment lock interruptibly, but never get the interrupt - T1 is waiting on the segment lock held by T2, while T2 is waiting for T1 to terminate Fix: - Make T2 keeps sending interrupt every 10 seconds until T1 is terminated. Added some logs for debugging purpose - Add more checks for `shouldStop` -- 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]
