HIVE-11449: "Capacity must be a power of two" error when 
HybridHashTableContainer memory threshold is too low (Jason Dere, reviewed by 
Sergey Shelukhin)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/2ee30c48
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/2ee30c48
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/2ee30c48

Branch: refs/heads/hbase-metastore
Commit: 2ee30c4859cd3427f0c74af536657d149cbad361
Parents: 763cb02
Author: Jason Dere <jd...@hortonworks.com>
Authored: Tue Aug 11 17:07:47 2015 -0700
Committer: Jason Dere <jd...@hortonworks.com>
Committed: Tue Aug 11 17:07:47 2015 -0700

----------------------------------------------------------------------
 .../hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java  | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/2ee30c48/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java
----------------------------------------------------------------------
diff --git 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java
 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java
index 0a6461f..ad1246d 100644
--- 
a/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java
+++ 
b/ql/src/java/org/apache/hadoop/hive/ql/exec/persistence/HybridHashTableContainer.java
@@ -118,6 +118,8 @@ public class HybridHashTableContainer
     public HashPartition(int threshold, float loadFactor, int wbSize, long 
memUsage,
                          boolean createHashMap) {
       if (createHashMap) {
+        // Hash map should be at least the size of our designated wbSize
+        memUsage = Math.max(memUsage, wbSize);
         hashMap = new BytesBytesMultiHashMap(threshold, loadFactor, wbSize, 
memUsage);
       } else {
         hashMapSpilledOnCreation = true;

Reply via email to