You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by ja...@apache.org on 2014/07/27 20:46:59 UTC

[13/27] git commit: DRILL-1096: Stop ScanBatch if read fails and pass failure context to the client, break the producer loop when iter outcome is stop

DRILL-1096: Stop ScanBatch if read fails and pass failure context to the client, break the producer loop when iter outcome is stop


Project: http://git-wip-us.apache.org/repos/asf/incubator-drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-drill/commit/a7d21d6f
Tree: http://git-wip-us.apache.org/repos/asf/incubator-drill/tree/a7d21d6f
Diff: http://git-wip-us.apache.org/repos/asf/incubator-drill/diff/a7d21d6f

Branch: refs/heads/master
Commit: a7d21d6f777d79f0a527ced9115a73decec37c40
Parents: 015680c
Author: Hanifi Gunes <hg...@maprtech.com>
Authored: Mon Jul 21 15:08:13 2014 -0700
Committer: Aditya Kishore <ad...@maprtech.com>
Committed: Thu Jul 24 16:16:03 2014 -0700

----------------------------------------------------------------------
 .../main/java/org/apache/drill/exec/physical/impl/ScanBatch.java | 4 ++++
 .../drill/exec/physical/impl/producer/ProducerConsumerBatch.java | 3 +++
 2 files changed, 7 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/a7d21d6f/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
index f440546..a8881f0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/ScanBatch.java
@@ -177,6 +177,10 @@ public class ScanBatch implements RecordBatch {
       } else {
         return IterOutcome.OK;
       }
+    } catch (Exception ex) {
+      logger.debug("Failed to read the batch. Stopping...", ex);
+      context.fail(ex);
+      return IterOutcome.STOP;
     } finally {
       oContext.getStats().stopProcessing();
     }

http://git-wip-us.apache.org/repos/asf/incubator-drill/blob/a7d21d6f/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java
index 6b43044..120a611 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/producer/ProducerConsumerBatch.java
@@ -78,6 +78,8 @@ public class ProducerConsumerBatch extends AbstractRecordBatch {
     }
     if (wrapper.finished) {
       return IterOutcome.NONE;
+    } else if (wrapper.failed) {
+      return IterOutcome.STOP;
     }
 
     recordCount = wrapper.batch.getRecordCount();
@@ -129,6 +131,7 @@ public class ProducerConsumerBatch extends AbstractRecordBatch {
             } catch (InterruptedException e) {
               throw new RuntimeException(e);
             }
+            return;
           case OK_NEW_SCHEMA:
           case OK:
             try {