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

Yongzhi Chen commented on HIVE-10453:
-------------------------------------

The file is opened when:
Resource res = ucp.getResource(path, false);
{noformat}
URLClassLoader$1.run() line: 358 [local variables unavailable]  
URLClassLoader$1.run() line: 355        
AccessController.doPrivileged(PrivilegedExceptionAction<T>, 
AccessControlContext) line: not available [native method]   
URLClassLoader.findClass(String) line: 354      
URLClassLoader(ClassLoader).loadClass(String, boolean) line: 425        
URLClassLoader(ClassLoader).loadClass(String) line: 358 
Class<T>.forName0(String, boolean, ClassLoader) line: not available [native 
method]     
Class<T>.forName(String, boolean, ClassLoader) line: 270        
Registry.registerToSessionRegistry(String, FunctionInfo) line: 460      
Registry.getQualifiedFunctionInfo(String) line: 438     
Registry.getFunctionInfo(String) line: 250      
FunctionRegistry.getFunctionInfo(String) line: 465      
FunctionRegistry.impliesOrder(String) line: 1523        
CalcitePlanner(SemanticAnalyzer).doPhase1GetAllAggregations(ASTNode, 
HashMap<String,ASTNode>, List<ASTNode>) line: 526  

{noformat}


And closed by:
List<IOException> errors = ucp.closeLoaders();
{noformat}
URLClassLoader.close() line: 286 [local variables unavailable]  
JavaUtils.closeClassLoader(ClassLoader) line: 110       
JavaUtils.closeClassLoadersTo(ClassLoader, ClassLoader) line: 87        
SessionState.close() line: 1450 
HiveSessionImplwithUGI(HiveSessionImpl).close() line: 566       
HiveSessionImplwithUGI.close() line: 110        
NativeMethodAccessorImpl.invoke0(Method, Object, Object[]) line: not available 
[native method]  
NativeMethodAccessorImpl.invoke(Object, Object[]) line: 57      
DelegatingMethodAccessorImpl.invoke(Object, Object[]) line: 43  
Method.invoke(Object, Object...) line: 606      
HiveSessionProxy.invoke(Method, Object[]) line: 78      
HiveSessionProxy.access$000(HiveSessionProxy, Method, Object[]) line: 36        
HiveSessionProxy$1.run() line: 63       
AccessController.doPrivileged(PrivilegedExceptionAction<T>, 
AccessControlContext) line: not available [native method]   
Subject.doAs(Subject, PrivilegedExceptionAction<T>) line: 415   
UserGroupInformation.doAs(PrivilegedExceptionAction<T>) line: 1628      
HiveSessionProxy.invoke(Object, Method, Object[]) line: 59      
$Proxy23.close() line: not available    
SessionManager.closeSession(SessionHandle) line: 279    
CLIService.closeSession(SessionHandle) line: 237        
{noformat}

The test sometimes fails sometimes succeeds, these are java API, not sure why 
it has random behaviors.


> HS2 leaking open file descriptors when using UDFs
> -------------------------------------------------
>
>                 Key: HIVE-10453
>                 URL: https://issues.apache.org/jira/browse/HIVE-10453
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Yongzhi Chen
>            Assignee: Yongzhi Chen
>
> 1. create a custom function by
> CREATE FUNCTION myfunc AS 'someudfclass' using jar 'hdfs:///tmp/myudf.jar';
> 2. Create a simple jdbc client, just do 
> connect, 
> run simple query which using the function such as:
> select myfunc(col1) from sometable
> 3. Disconnect.
> Check open file for HiveServer2 by:
> lsof -p HSProcID | grep myudf.jar
> You will see the leak as:
> {noformat}
> java      28718 ychen  txt      REG                1,4        741 212977666 
> /private/var/folders/6p/7_njf13d6h144wldzbbsfpz80000gp/T/1bfe3de0-ac63-4eba-a725-6a9840f1f8d5_resources/myudf.jar
> java      28718 ychen  330r     REG                1,4        741 212977666 
> /private/var/folders/6p/7_njf13d6h144wldzbbsfpz80000gp/T/1bfe3de0-ac63-4eba-a725-6a9840f1f8d5_resources/myudf.jar
> {noformat}



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

Reply via email to