This is an automated email from the ASF dual-hosted git repository.

arina pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/drill.git

commit 91962d3dd38119ad04fa6b646a4980fd77e828d8
Author: Bohdan Kazydub <[email protected]>
AuthorDate: Tue Oct 16 17:11:36 2018 +0300

    DRILL-6793: FragmentExecutor cannot send its final state for the case when 
RootExec root wasn't initialized
    
    closes #1506
---
 .../drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java       | 2 +-
 .../apache/drill/exec/store/hive/readers/HiveAbstractReader.java    | 2 +-
 .../main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java | 4 ++++
 .../java/org/apache/drill/exec/store/avro/AvroRecordReader.java     | 6 ++++--
 .../exec/store/easy/sequencefile/SequenceFileRecordReader.java      | 2 +-
 .../java/org/apache/drill/exec/work/fragment/FragmentExecutor.java  | 2 +-
 6 files changed, 12 insertions(+), 6 deletions(-)

diff --git 
a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java
 
b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java
index b68f574..628a986 100644
--- 
a/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java
+++ 
b/contrib/format-maprdb/src/main/java/org/apache/drill/exec/store/mapr/db/json/MaprDBJsonRecordReader.java
@@ -531,7 +531,7 @@ public class MaprDBJsonRecordReader extends 
AbstractRecordReader {
   @Override
   public String toString() {
     StringBuilder sb = new StringBuilder("MaprDBJsonRecordReader[Table=")
-        .append(table.getPath());
+        .append(table != null ? table.getPath() : null);
     if (reader != null) {
       sb.append(", Document ID=")
           .append(IdCodec.asString(reader.getId()));
diff --git 
a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/readers/HiveAbstractReader.java
 
b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/readers/HiveAbstractReader.java
index 5ed6c3b..cc774d9 100644
--- 
a/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/readers/HiveAbstractReader.java
+++ 
b/contrib/storage-hive/core/src/main/java/org/apache/drill/exec/store/hive/readers/HiveAbstractReader.java
@@ -429,7 +429,7 @@ public abstract class HiveAbstractReader extends 
AbstractRecordReader {
         position = reader.getPos();
       }
     } catch (IOException e) {
-      logger.trace("Unable to obtain reader position: " + e.getMessage());
+      logger.trace("Unable to obtain reader position.", e);
     }
     return getClass().getSimpleName() + "[Database=" + table.getDbName()
         + ", Table=" + table.getTableName()
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java
index 9142a2a..95a1235 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java
@@ -126,6 +126,10 @@ public abstract class BaseRootExec implements RootExec {
 
   @Override
   public void dumpBatches() {
+    if (operators == null) {
+      return;
+    }
+
     final int numberOfBatchesToDump = 2;
     logger.error("Batch dump started: dumping last {} failed batches", 
numberOfBatchesToDump);
     // As batches are stored in a 'flat' List there is a need to filter out 
the failed batch
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
index 7668130..1d7226a 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java
@@ -403,9 +403,11 @@ public class AvroRecordReader extends AbstractRecordReader 
{
   public String toString() {
     long currentPosition = -1L;
     try {
-      currentPosition = reader.tell();
+      if (reader != null) {
+        currentPosition = reader.tell();
+      }
     } catch (IOException e) {
-      logger.trace("Unable to obtain reader position: " + e.getMessage());
+      logger.trace("Unable to obtain reader position.", e);
     }
     return "AvroRecordReader[File=" + hadoop
         + ", Position=" + currentPosition
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/sequencefile/SequenceFileRecordReader.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/sequencefile/SequenceFileRecordReader.java
index 549df82..7f9b993 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/sequencefile/SequenceFileRecordReader.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/sequencefile/SequenceFileRecordReader.java
@@ -172,7 +172,7 @@ public class SequenceFileRecordReader extends 
AbstractRecordReader {
         position = reader.getPos();
       }
     } catch (IOException e) {
-      logger.trace("Unable to obtain reader position: " + e.getMessage());
+      logger.trace("Unable to obtain reader position.", e);
     }
     return "SequenceFileRecordReader[File=" + split.getPath()
         + ", Position=" + position
diff --git 
a/exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
 
b/exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
index a9e9e62..e374c01 100644
--- 
a/exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
+++ 
b/exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java
@@ -207,7 +207,7 @@ public class FragmentExecutor implements Runnable {
   }
 
   private void cleanup(FragmentState state) {
-    if (fragmentState.get() == FragmentState.FAILED) {
+    if (root != null && fragmentState.get() == FragmentState.FAILED) {
       root.dumpBatches();
     }
 

Reply via email to