Details
-
Bug
-
Status: Resolved
-
Blocker
-
Resolution: Fixed
-
Impala 2.5.0
Description
HiveUdfCall::Open() calls JniUtil::GetGlobalClassRef(), which in turn calls JniUtil::LocalToGlobalRef(), which appends to the static std::vector global_refs_. This path can be running multiple times simultaneously due to multiple Java UDF calls across multiple fragments in a single query or multiple queries, resulting in unsynchronized access to global_refs_.
In other places, GetGlobalClassRef() and LocalToGlobalRef() are used during process initialization in the main thread, which is probably the intended use case.
Attachments
Issue Links
- relates to
-
IMPALA-3379 HBaseTableWriter::CreatePutList() produces unsynchronized access to JniUtil::global_refs_ vector
- Resolved