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]

Reply via email to