aboutsummaryrefslogtreecommitdiff
path: root/exec
diff options
context:
space:
mode:
authorBohdan Kazydub <bohdan.kazydub@gmail.com>2018-10-16 17:11:36 +0300
committerArina Ielchiieva <arina.yelchiyeva@gmail.com>2018-10-19 14:34:01 +0300
commit91962d3dd38119ad04fa6b646a4980fd77e828d8 (patch)
tree2e97fb109d4412f58f92713eba05ffc470d1a11c /exec
parentf5bdbf344bfbd069fd3f1143b23624457ace19a9 (diff)
DRILL-6793: FragmentExecutor cannot send its final state for the case when RootExec root wasn't initialized
closes #1506
Diffstat (limited to 'exec')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/BaseRootExec.java4
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/avro/AvroRecordReader.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/store/easy/sequencefile/SequenceFileRecordReader.java2
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/work/fragment/FragmentExecutor.java2
4 files changed, 10 insertions, 4 deletions
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 9142a2ade..95a123501 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 766813006..1d7226ad1 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 549df8277..7f9b993fe 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 a9e9e62ec..e374c0177 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();
}