You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2012/12/28 15:41:56 UTC
svn commit: r1426524 -
/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java
Author: hashutosh
Date: Fri Dec 28 14:41:55 2012
New Revision: 1426524
URL: http://svn.apache.org/viewvc?rev=1426524&view=rev
Log:
HIVE-3809 : Concurrency issue in RCFile: multiple threads can use the same decompressor (Mikhail Bautin via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java?rev=1426524&r1=1426523&r2=1426524&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/io/RCFile.java Fri Dec 28 14:41:55 2012
@@ -548,7 +548,11 @@ public class RCFile {
}
if (codec != null) {
IOUtils.closeStream(decompressBuffer);
- CodecPool.returnDecompressor(valDecompressor);
+ if (valDecompressor != null) {
+ // Make sure we only return valDecompressor once.
+ CodecPool.returnDecompressor(valDecompressor);
+ valDecompressor = null;
+ }
}
}
@@ -1757,7 +1761,11 @@ public class RCFile {
currentValue.close();
if (decompress) {
IOUtils.closeStream(keyDecompressedData);
- CodecPool.returnDecompressor(keyDecompressor);
+ if (keyDecompressor != null) {
+ // Make sure we only return keyDecompressor once.
+ CodecPool.returnDecompressor(keyDecompressor);
+ keyDecompressor = null;
+ }
}
}