[
https://issues.apache.org/jira/browse/IMPALA-13313?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Michael Smith resolved IMPALA-13313.
------------------------------------
Fix Version/s: Impala 4.5.0
Resolution: Fixed
> Potential deadlock in ImpalaServer::ExpireQueries()
> ---------------------------------------------------
>
> Key: IMPALA-13313
> URL: https://issues.apache.org/jira/browse/IMPALA-13313
> Project: IMPALA
> Issue Type: Bug
> Components: Backend
> Affects Versions: Impala 4.4.0
> Reporter: Yida Wu
> Assignee: Michael Smith
> Priority: Critical
> Fix For: Impala 4.5.0
>
>
> IMPALA-12602 introduces a way to unregister a query from a session when
> idle_query_timeout is reached. However, it also includes logic in
> ExpireQueries() that could cause a deadlock by trying to get the
> SessionState::lock while also holding query_expiration_lock_. This violates
> the lock order defined in
> [impala-server.h|https://github.com/apache/impala/blob/9848cd84be6ed07fe542b82d2e2628e658690621/be/src/service/impala-server.h#L187]
> and could potentially result in a deadlock.
> For example, it can have a deadlock with
> [SetInFlight()|https://github.infra.cloudera.com/CDH/Impala/blob/1e4e196b53c2ba88c58d13dfb3709b849767a109/be/src/service/impala-server.cc#L1386],
> which may try to get the query_expiration_lock_ while holding
> SessionState::lock.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)