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

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

              Dates

                Created:
                Updated:
                Resolved: