[
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)