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;