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

Ashutosh Chauhan commented on HIVE-11499:
-----------------------------------------

I noticed this patch checked in a jar file in git repo. Its usually not 
considered a good practice to check in binary files in source repo. We never 
know when we need to update source of that jar. Ideally, source code should be 
checked in and then it should be compiled in build phase and then used in test 
phase. 
[~hsubramaniyan] spent lot of time last year to make our repo binary-file free. 
Please reconsider decision of checking in a jar file.

> Datanucleus leaks classloaders when used using embedded metastore with 
> HiveServer2 with UDFs
> --------------------------------------------------------------------------------------------
>
>                 Key: HIVE-11499
>                 URL: https://issues.apache.org/jira/browse/HIVE-11499
>             Project: Hive
>          Issue Type: Bug
>          Components: HiveServer2, Metastore
>    Affects Versions: 0.14.0, 1.0.0, 1.2.0, 1.1.0, 1.1.1, 1.2.1
>            Reporter: Vaibhav Gumashta
>            Assignee: Vaibhav Gumashta
>             Fix For: 1.3.0, 2.0.0
>
>         Attachments: HIVE-11499.1.patch, HIVE-11499.3.patch, 
> HIVE-11499.4.patch, HS2-NucleusCache-Leak.tiff
>
>
> When UDFs are used, we create a new classloader to add the UDF jar. Similar 
> to what hadoop's reflection utils does(HIVE-11408), datanucleus caches the 
> classloaders 
> (https://github.com/datanucleus/datanucleus-core/blob/3.2/src/java/org/datanucleus/NucleusContext.java#L161).
>  JDOPersistanceManager factory (1 per JVM) holds on to a NucleusContext 
> reference 
> (https://github.com/datanucleus/datanucleus-api-jdo/blob/3.2/src/java/org/datanucleus/api/jdo/JDOPersistenceManagerFactory.java#L115).
>  Until we call  NucleusContext#close, the classloader cache is not cleared. 
> In case of UDFs this can lead to permgen leak, as shown in the attached 
> screenshot, where NucleusContext holds on to several URLClassloader objects.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to