You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2011/01/25 00:31:28 UTC
svn commit: r1063062 - in /hive/trunk: CHANGES.txt
ql/src/java/org/apache/hadoop/hive/ql/Driver.java
ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
Author: namit
Date: Mon Jan 24 23:31:28 2011
New Revision: 1063062
URL: http://svn.apache.org/viewvc?rev=1063062&view=rev
Log:
HIVE-1908 FileHandler leak on partial iteration of the resultset
(Chinna Rao Lalam via namit)
Modified:
hive/trunk/CHANGES.txt
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
Modified: hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hive/trunk/CHANGES.txt?rev=1063062&r1=1063061&r2=1063062&view=diff
==============================================================================
--- hive/trunk/CHANGES.txt (original)
+++ hive/trunk/CHANGES.txt Mon Jan 24 23:31:28 2011
@@ -719,6 +719,9 @@ Trunk - Unreleased
HIVE-1897 Alter command execution "when HDFS is down" results in holding
stale data in MetaStore (Chinna Rao Lalam via namit)
+ HIVE-1908 FileHandler leak on partial iteration of the resultset
+ (Chinna Rao Lalam via namit)
+
TESTS
HIVE-1464. improve test query performance
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java?rev=1063062&r1=1063061&r2=1063062&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java Mon Jan 24 23:31:28 2011
@@ -36,6 +36,7 @@ import java.util.Set;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.hive.common.JavaUtils;
import org.apache.hadoop.hive.conf.HiveConf;
@@ -1130,9 +1131,26 @@ public class Driver implements CommandPr
public int close() {
try {
+ if (plan != null) {
+ FetchTask fetchTask = plan.getFetchTask();
+ if (null != fetchTask) {
+ try {
+ fetchTask.clearFetch();
+ } catch (Exception e) {
+ LOG.debug(" Exception while clearing the Fetch task ", e);
+ }
+ }
+ }
if (ctx != null) {
ctx.clear();
}
+ if (null != resStream) {
+ try {
+ ((FSDataInputStream) resStream).close();
+ } catch (Exception e) {
+ LOG.debug(" Exception while closing the resStream ", e);
+ }
+ }
} catch (Exception e) {
console.printError("FAILED: Hive Internal Error: " + Utilities.getNameMessage(e) + "\n"
+ org.apache.hadoop.util.StringUtils.stringifyException(e));
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java?rev=1063062&r1=1063061&r2=1063062&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/FetchTask.java Mon Jan 24 23:31:28 2011
@@ -28,13 +28,14 @@ import org.apache.hadoop.hive.conf.HiveC
import org.apache.hadoop.hive.ql.Context;
import org.apache.hadoop.hive.ql.DriverContext;
import org.apache.hadoop.hive.ql.QueryPlan;
+import org.apache.hadoop.hive.ql.metadata.HiveException;
import org.apache.hadoop.hive.ql.plan.FetchWork;
import org.apache.hadoop.hive.ql.plan.TableDesc;
import org.apache.hadoop.hive.ql.plan.api.StageType;
import org.apache.hadoop.hive.serde.Constants;
import org.apache.hadoop.hive.serde2.DelimitedJSONSerDe;
-import org.apache.hadoop.hive.serde2.objectinspector.InspectableObject;
import org.apache.hadoop.hive.serde2.SerDe;
+import org.apache.hadoop.hive.serde2.objectinspector.InspectableObject;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapred.JobConf;
import org.apache.hadoop.util.ReflectionUtils;
@@ -163,11 +164,24 @@ public class FetchTask extends Task<Fetc
@Override
protected void localizeMRTmpFilesImpl(Context ctx) {
String s = work.getTblDir();
- if ((s != null) && ctx.isMRTmpFileURI(s))
+ if ((s != null) && ctx.isMRTmpFileURI(s)) {
work.setTblDir(ctx.localizeMRTmpFileURI(s));
+ }
ArrayList<String> ls = work.getPartDir();
- if (ls != null)
+ if (ls != null) {
ctx.localizePaths(ls);
+ }
+ }
+
+ /**
+ * Clear the Fetch Operator.
+ *
+ * @throws HiveException
+ */
+ public void clearFetch() throws HiveException {
+ if (null != ftOp) {
+ ftOp.clearFetchContext();
+ }
}
}