[CARBONDATA-2058] Block append data to streaming segment after writing exception

If CarbonStreamRecordWriter happened an exception, mark hasException attribute 
to avoid appending data to the segment.

This closes #1836


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

Branch: refs/heads/carbonstore
Commit: bcc9cf0e99bf93472572863234604e5eaf515a76
Parents: 9882a74
Author: QiangCai <[email protected]>
Authored: Fri Jan 19 17:28:57 2018 +0800
Committer: Jacky Li <[email protected]>
Committed: Fri Jan 19 21:06:45 2018 +0800

----------------------------------------------------------------------
 .../carbondata/hadoop/streaming/CarbonStreamRecordWriter.java    | 4 ++++
 .../org/apache/carbondata/streaming/segment/StreamSegment.java   | 1 +
 2 files changed, 5 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/carbondata/blob/bcc9cf0e/hadoop/src/main/java/org/apache/carbondata/hadoop/streaming/CarbonStreamRecordWriter.java
----------------------------------------------------------------------
diff --git 
a/hadoop/src/main/java/org/apache/carbondata/hadoop/streaming/CarbonStreamRecordWriter.java
 
b/hadoop/src/main/java/org/apache/carbondata/hadoop/streaming/CarbonStreamRecordWriter.java
index 7d862d4..212baa7 100644
--- 
a/hadoop/src/main/java/org/apache/carbondata/hadoop/streaming/CarbonStreamRecordWriter.java
+++ 
b/hadoop/src/main/java/org/apache/carbondata/hadoop/streaming/CarbonStreamRecordWriter.java
@@ -319,4 +319,8 @@ public class CarbonStreamRecordWriter extends 
RecordWriter<Void, Object> {
   public String getFileName() {
     return fileName;
   }
+
+  public void setHasException(boolean hasException) {
+    this.hasException = hasException;
+  }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/carbondata/blob/bcc9cf0e/streaming/src/main/java/org/apache/carbondata/streaming/segment/StreamSegment.java
----------------------------------------------------------------------
diff --git 
a/streaming/src/main/java/org/apache/carbondata/streaming/segment/StreamSegment.java
 
b/streaming/src/main/java/org/apache/carbondata/streaming/segment/StreamSegment.java
index 69d0b8d..74e1461 100644
--- 
a/streaming/src/main/java/org/apache/carbondata/streaming/segment/StreamSegment.java
+++ 
b/streaming/src/main/java/org/apache/carbondata/streaming/segment/StreamSegment.java
@@ -248,6 +248,7 @@ public class StreamSegment {
       if (writer != null) {
         LOGGER.error(ex, "Failed to append batch data to stream segment: " +
             writer.getSegmentDir());
+        writer.setHasException(true);
       }
       throw ex;
     } finally {

Reply via email to