From 2b76d573471261bc2f4bee658bef9cc1709dde90 Mon Sep 17 00:00:00 2001 From: Jihoon Son Date: Mon, 8 Oct 2018 08:53:32 -0700 Subject: [PATCH] Fail compactionTask if it fails to run one of indexTaskSpecs (#6428) * Fail compactionTask if it fails to run one of indexTaskSpecs * add log --- .../druid/indexing/common/task/CompactionTask.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/common/task/CompactionTask.java b/indexing-service/src/main/java/org/apache/druid/indexing/common/task/CompactionTask.java index 27df0e720da..4b0da2adfa6 100644 --- a/indexing-service/src/main/java/org/apache/druid/indexing/common/task/CompactionTask.java +++ b/indexing-service/src/main/java/org/apache/druid/indexing/common/task/CompactionTask.java @@ -261,8 +261,10 @@ public class CompactionTask extends AbstractTask log.warn("Interval[%s] has no segments, nothing to do.", interval); return TaskStatus.failure(getId()); } else { - log.info("Generated [%d] compaction task specs", indexTaskSpecs.size()); + final int totalNumSpecs = indexTaskSpecs.size(); + log.info("Generated [%d] compaction task specs", totalNumSpecs); + int failCnt = 0; for (IndexTask eachSpec : indexTaskSpecs) { final String json = jsonMapper.writerWithDefaultPrettyPrinter().writeValueAsString(eachSpec); log.info("Running indexSpec: " + json); @@ -270,15 +272,18 @@ public class CompactionTask extends AbstractTask try { final TaskStatus eachResult = eachSpec.run(toolbox); if (!eachResult.isSuccess()) { + failCnt++; log.warn("Failed to run indexSpec: [%s].\nTrying the next indexSpec.", json); } } catch (Exception e) { + failCnt++; log.warn(e, "Failed to run indexSpec: [%s].\nTrying the next indexSpec.", json); } } - return TaskStatus.success(getId()); + log.info("Run [%d] specs, [%d] succeeded, [%d] failed", totalNumSpecs, totalNumSpecs - failCnt, failCnt); + return failCnt == 0 ? TaskStatus.success(getId()) : TaskStatus.failure(getId()); } }