Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
Impala 2.7.0
Description
The lock order is ImpalaServer::query_exec_state_map_lock_ -> QueryExecState::lock_, but there's a possible callstack that violates this.
- ImpalaServer::CancelInternal() holding QueryExecState::lock_
- calls QueryExecState::Cancel()
- calls ChildQuery::Cancel()
- calls ImpalaServer::CancelOperation()
- calls ImpalaServer::GetQueryExecState(), which grabs ImpalaServer::query_exec_state_map_lock_
This could lead to deadlock if another thread called GetQueryExecState() on the same ImpalaServer instance (i.e. HS2/beewax) for the same QueryExecState at the same time.
Attachments
Issue Links
- is related to
-
IMPALA-4038 RPC delays for single query can lead to ImpalaServer not making progress on any queries
- Resolved