From bb0d82912ea53d2694837560c19e808adeb7ea29 Mon Sep 17 00:00:00 2001 From: GWphua Date: Wed, 12 Mar 2025 16:38:07 +0800 Subject: [PATCH 1/2] Fix single container config creates failing peon tasks --- distribution/docker/peon.sh | 6 +++++- services/src/main/java/org/apache/druid/cli/CliPeon.java | 7 +++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/distribution/docker/peon.sh b/distribution/docker/peon.sh index 3b4dfc4326b9..444aec94e9a2 100755 --- a/distribution/docker/peon.sh +++ b/distribution/docker/peon.sh @@ -161,4 +161,8 @@ fi # If TASK_JSON is not set, CliPeon will pull the task.json file from deep storage. mkdir -p ${TASK_DIR}; [ -n "$TASK_JSON" ] && echo ${TASK_JSON} | base64 -d | gzip -d > ${TASK_DIR}/task.json; -exec bin/run-java ${JAVA_OPTS} -cp $COMMON_CONF_DIR:$SERVICE_CONF_DIR:lib/*: org.apache.druid.cli.Main internal peon --taskId ${TASK_ID} $@ +if [ -n "$TASK_ID" ]; then + exec bin/run-java ${JAVA_OPTS} -cp $COMMON_CONF_DIR:$SERVICE_CONF_DIR:lib/*: org.apache.druid.cli.Main internal peon --taskId "${TASK_ID}" "$@" +else + exec bin/run-java ${JAVA_OPTS} -cp $COMMON_CONF_DIR:$SERVICE_CONF_DIR:lib/*: org.apache.druid.cli.Main internal peon "$@" +fi diff --git a/services/src/main/java/org/apache/druid/cli/CliPeon.java b/services/src/main/java/org/apache/druid/cli/CliPeon.java index 307ba269a4f4..e904ff729959 100644 --- a/services/src/main/java/org/apache/druid/cli/CliPeon.java +++ b/services/src/main/java/org/apache/druid/cli/CliPeon.java @@ -24,6 +24,7 @@ import com.github.rvesse.airline.annotations.Command; import com.github.rvesse.airline.annotations.Option; import com.github.rvesse.airline.annotations.restrictions.Required; +import com.google.common.base.Preconditions; import com.google.common.base.Supplier; import com.google.common.base.Throwables; import com.google.common.collect.ImmutableList; @@ -234,6 +235,12 @@ protected List getModules() public void configure(Binder binder) { ServerRunnable.validateCentralizedDatasourceSchemaConfig(getProperties()); + Preconditions.checkArgument( + taskAndStatusFile.size() >= 2, + "taskAndStatusFile array[%s]: should contain 2 or more elements.", + taskAndStatusFile.toString() + ); + taskDirPath = taskAndStatusFile.get(0); attemptId = taskAndStatusFile.get(1); From e7fcdf66ec60827cb46c6c34a62a07db1b657653 Mon Sep 17 00:00:00 2001 From: GWphua Date: Mon, 17 Mar 2025 14:09:16 +0800 Subject: [PATCH 2/2] More obvious array error output --- services/src/main/java/org/apache/druid/cli/CliPeon.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/src/main/java/org/apache/druid/cli/CliPeon.java b/services/src/main/java/org/apache/druid/cli/CliPeon.java index e904ff729959..3d06ad7dee3e 100644 --- a/services/src/main/java/org/apache/druid/cli/CliPeon.java +++ b/services/src/main/java/org/apache/druid/cli/CliPeon.java @@ -237,7 +237,7 @@ public void configure(Binder binder) ServerRunnable.validateCentralizedDatasourceSchemaConfig(getProperties()); Preconditions.checkArgument( taskAndStatusFile.size() >= 2, - "taskAndStatusFile array[%s]: should contain 2 or more elements.", + "taskAndStatusFile array should contain 2 or more elements. Current array elements: [%s]", taskAndStatusFile.toString() );