You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@impala.apache.org by "Vuk Ercegovac (JIRA)" <ji...@apache.org> on 2017/11/18 00:19:00 UTC

[jira] [Created] (IMPALA-6215) Race between lib_cache and java udf class loading

Vuk Ercegovac created IMPALA-6215:
-------------------------------------

             Summary: Race between lib_cache and java udf class loading
                 Key: IMPALA-6215
                 URL: https://issues.apache.org/jira/browse/IMPALA-6215
             Project: IMPALA
          Issue Type: Bug
            Reporter: Vuk Ercegovac


There's a race between the lib_cache (backend) and UdfExecutor's class loading (frontend).

A sequence of events that exposes this race is as follows:

1. Backend hive-udf-call, in Init obtains the cached, local path to the jar containing the java
    method to run
2. A function that is contained in the cached jar is dropped
3. The impala server, on a separate thread learns of the dropped function, so blows away the
    containing jar
4. Backend hive-udf-call is opened, which constructs the UdfExecutor given the cached path
    to the jar that has just been deleted. A classloader is created with that path-- when the 
    class is resolved, we get a ClassNotFound exception

An example of this sequence shows up occasionally and is the reason for the following flake: 
https://issues.apache.org/jira/browse/IMPALA-6092



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)