Uploaded image for project: 'IMPALA'
  1. IMPALA
  2. IMPALA-3378

HiveUdfCall::Open() produces unsynchronized access to JniUtil::global_refs_ vector

    XMLWordPrintableJSON

    Details

      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

            Activity

              People

              • Assignee:
                skye Skye Wanderman-Milne
                Reporter:
                skye Skye Wanderman-Milne
              • Votes:
                0 Vote for this issue
                Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: