[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 {
