[ 
https://issues.apache.org/jira/browse/HIVE-6364?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13940018#comment-13940018
 ] 

Jaideep Dhok commented on HIVE-6364:
------------------------------------

[~ashutoshc] I will put up a new patch.
[~jdere] Add jar will always update the class loader. That's the current 
behaviour. I think the first class loader is set using the conf.getClassLoader 
method, if nothing is set it will return the default class loader.



> HiveServer2 - Request serving thread should get class loader from existing 
> SessionState
> ---------------------------------------------------------------------------------------
>
>                 Key: HIVE-6364
>                 URL: https://issues.apache.org/jira/browse/HIVE-6364
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2
>            Reporter: Jaideep Dhok
>         Attachments: HIVE-6364.1.patch
>
>
> SessionState is created for each session in HS2. If we do any add jars, a 
> class loader is set in the SessionState's conf object. This class loader 
> should also be set in each thread that serves request of the same session.
> Scenario (both requests are in the same session)-
> {noformat}
> // req 1
> add jar foo.jar // Served by thread th1, this updates class loader and sets 
> in SessionState.conf
> // req2 served by th2, such that th1 != th2
> CREATE TEMPORARY FUNCTION foo_udf AS 'some class in foo.jar' 
> // This can throw class not found error, because although 
> // the new thread (th2) gets the same session state as th1,
> // the class loader is different (Thread.currentThread.getContextClassLoader()
> {noformat}



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to