Taewoo Kim has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/1505

Change subject: ASTERIXDB-1791: Add a sanity check to hashjoin partition reading
......................................................................

ASTERIXDB-1791: Add a sanity check to hashjoin partition reading

 - Add a sanity condition when reading the spilled partition pairs
   from disk.

Change-Id: I034691f05e05207b478929d76b02013578eed5ed
---
M 
hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
M 
hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
2 files changed, 9 insertions(+), 3 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/05/1505/1

diff --git 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
index 17f009e..9733366 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoin.java
@@ -605,6 +605,10 @@
         this.isReversed = b;
     }
 
+    public int getNumberOfPartitions() {
+        return numOfPartitions;
+    }
+
     /**
      * Prints out the detailed information for partitions: in-memory and 
spilled partitions.
      * This method exists for a debug purpose.
diff --git 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
index a72c0c6..a8e66ac 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-dataflow-std/src/main/java/org/apache/hyracks/dataflow/std/join/OptimizedHybridHashJoinOperatorDescriptor.java
@@ -418,8 +418,9 @@
                         BitSet partitionStatus = 
state.hybridHJ.getPartitionStatus();
 
                         rPartbuff.reset();
-                        for (int pid = partitionStatus.nextSetBit(0); pid >= 
0; pid = partitionStatus
-                                .nextSetBit(pid + 1)) {
+                        for (int pid = partitionStatus.nextSetBit(0); pid >= 0
+                                && pid < 
state.hybridHJ.getNumberOfPartitions(); pid = partitionStatus
+                                        .nextSetBit(pid + 1)) {
 
                             RunFileReader bReader = 
state.hybridHJ.getBuildRFReader(pid);
                             RunFileReader pReader = 
state.hybridHJ.getProbeRFReader(pid);
@@ -579,7 +580,8 @@
                             LOGGER.fine("\t\t>>>Case 2.1.1 - KEEP APPLYING 
RecursiveHHJ WITH "
                                     + "(isLeftOuter || build<probe) - [Level " 
+ level + "]");
                         }
-                        for (int rPid = rPStatus.nextSetBit(0); rPid >= 0; 
rPid = rPStatus.nextSetBit(rPid + 1)) {
+                        for (int rPid = rPStatus.nextSetBit(0); rPid >= 0
+                                && rPid < rHHj.getNumberOfPartitions(); rPid = 
rPStatus.nextSetBit(rPid + 1)) {
                             RunFileReader rbrfw = rHHj.getBuildRFReader(rPid);
                             RunFileReader rprfw = rHHj.getProbeRFReader(rPid);
                             int rbSizeInTuple = 
rHHj.getBuildPartitionSizeInTup(rPid);

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/1505
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I034691f05e05207b478929d76b02013578eed5ed
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: Taewoo Kim <wangs...@gmail.com>

Reply via email to