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