Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
Impala 2.5.0
Description
ImpalaServer::UpdateFilter() needlessly passes true as the second parameter to GetQueryExecState(), which locks the exec state itself. This is only needed if the exec state is going to be mutated, as the shared_ptr<> return type ensures that the exec state will be live for the duration of the method. However, the only thing that the exec state is used for is to access the Coordinator, which is synchronised differently.
The exec state lock can get pretty hot, and UpdateFilter() can take a little while with large filters.