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

Chinna Rao Lalam commented on HIVE-1959:
----------------------------------------

Thanks Ning Zhang & ಕರಿಯ  for the comments. 

If we use WeakHashMap when no one have the reference for the QueryInfo or 
TaskInfo objects other than weakhashmap if GC happens these objects will be 
garbage collected.

But in our case the QueryInfo or TaskInfo objects will be accessed in different 
stages like StartQuery ,setQueryProperty and  EndQuery etc.

For Ex some queries will execute more time (May be some hours), At the time of 
start query it will put the data in to weakhashmap after long time endQuery() 
is executed in between some times it will accesses the weakhashmap from the 
methods like 
setQueryProperty().

But by that time if GC triggered there is a chance to garbage collect these 
objects(QueryInfo & TaskInfo). This case we will lose the information of 
QueryInfo & TaskInfo objects. Here we don't have control, GC will have the 
control to remove the objects.

Using HashMap and removing objects from the map through code, this case we will 
have control.

@Ning Zhang : There are some early exits (should be changed in my opinion. I 
will file another JIRA to fix this) in the loop of execute() which will bypass 
the finally clause.
This case we have to change the implementation, present implementation is 
calling System.exit(9) it will exit from JVM. I will provide a patch for this 
issue.

> Potential memory leak when same connection used for long time. TaskInfo and 
> QueryInfo objects are getting accumulated on executing more queries on the 
> same connection.
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: HIVE-1959
>                 URL: https://issues.apache.org/jira/browse/HIVE-1959
>             Project: Hive
>          Issue Type: Bug
>          Components: Server Infrastructure
>    Affects Versions: 0.8.0
>         Environment: Hadoop 0.20.1, Hive0.5.0 and SUSE Linux Enterprise 
> Server 10 SP2 (i586) - Kernel 2.6.16.60-0.21-smp (5).
>            Reporter: Chinna Rao Lalam
>            Assignee: Chinna Rao Lalam
>         Attachments: HIVE-1959.patch
>
>
> *org.apache.hadoop.hive.ql.history.HiveHistory$TaskInfo* and 
> *org.apache.hadoop.hive.ql.history.HiveHistory$QueryInfo* these two objects 
> are getting accumulated on executing more number of queries on the same 
> connection. These objects are getting released only when the connection is 
> closed.

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira


Reply via email to