[
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