Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
Impala 2.7.0, Impala 2.8.0
Description
While looking through the code to understand another potential bug, I found out that CancelInternal() violates the lock ordering in ImpalaServer by acquiring SessionState::lock_ while holding QueryExecState::lock_. This could cause a hang if a number of threads were holding the right locks at the right time. I traced out the lock dependencies using a directed graph, which I've attached.