Gopal V created HIVE-12463: ------------------------------ Summary: VectorMapJoinFastKeyStore has Array OOB errors Key: HIVE-12463 URL: https://issues.apache.org/jira/browse/HIVE-12463 Project: Hive Issue Type: Bug Components: Vectorization Affects Versions: 2.0.0 Reporter: Gopal V Assignee: Gopal V
When combining different sized keys, observing an occasional error in hashtable probes. {code} Caused by: java.lang.ArrayIndexOutOfBoundsException: 162046429 at org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.VectorMapJoinFastKeyStore.equalKey(VectorMapJoinFastKeyStore.java:150) at org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.VectorMapJoinFastBytesHashTable.findReadSlot(VectorMapJoinFastBytesHashTable.java:191) at org.apache.hadoop.hive.ql.exec.vector.mapjoin.fast.VectorMapJoinFastBytesHashMap.lookup(VectorMapJoinFastBytesHashMap.java:76) at org.apache.hadoop.hive.ql.exec.vector.mapjoin.VectorMapJoinInnerMultiKeyOperator.process(VectorMapJoinInnerMultiKeyOperator.java:300) ... 26 more {code} {code} // Our reading is positioned to the key. writeBuffers.getByteSegmentRefToCurrent(byteSegmentRef, keyLength, readPos); byte[] currentBytes = byteSegmentRef.getBytes(); int currentStart = (int) byteSegmentRef.getOffset(); for (int i = 0; i < keyLength; i++) { if (currentBytes[currentStart + i] != keyBytes[keyStart + i]) { // LOG.debug("VectorMapJoinFastKeyStore equalKey no match on bytes"); return false; } } {code} This needs an identical fix to match {code} // Rare case of buffer boundary. Unfortunately we'd have to copy some bytes. // Rare case of buffer boundary. Unfortunately we'd have to copy some bytes. byte[] bytes = new byte[length]; int destOffset = 0; while (destOffset < length) { ponderNextBufferToRead(readPos); {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)