From 762547238f0907d4c0a6c5fb1c962b4aeaa7cee5 Mon Sep 17 00:00:00 2001 From: Maytas Monsereenusorn Date: Fri, 14 Jun 2024 20:25:32 -0700 Subject: [PATCH 1/2] Fix task context fails with non string property value --- .../apache/druid/indexing/overlord/ForkingTaskRunner.java | 7 ++++++- .../druid/indexing/overlord/ForkingTaskRunnerTest.java | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java index e946fc6149b9..45986e78d306 100644 --- a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java +++ b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java @@ -316,7 +316,7 @@ public TaskStatus call() if (propName.startsWith(CHILD_PROPERTY_PREFIX)) { command.addSystemProperty( propName.substring(CHILD_PROPERTY_PREFIX.length()), - task.getContextValue(propName) + (Object) task.getContextValue(propName) ); } } @@ -924,6 +924,11 @@ public CommandListBuilder addSystemProperty(String property, boolean value) return addSystemProperty(property, String.valueOf(value)); } + public CommandListBuilder addSystemProperty(String property, Object value) + { + return addSystemProperty(property, String.valueOf(value)); + } + public CommandListBuilder addSystemProperty(String property, String value) { return add(StringUtils.format("-D%s=%s", property, value)); diff --git a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/ForkingTaskRunnerTest.java b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/ForkingTaskRunnerTest.java index 2c17b3cb7c4f..56695e5cf27c 100644 --- a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/ForkingTaskRunnerTest.java +++ b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/ForkingTaskRunnerTest.java @@ -392,6 +392,7 @@ public void testJavaOptsAndJavaOptsArrayOverride() throws ExecutionException, In + " \"firehose\" : null,\n" + " \"context\" : {\n" + " \"druid.indexer.runner.javaOptsArray\" : [ \"-Xmx10g\", \"-Xms10g\" ],\n" + + " \"druid.indexer.fork.property.druid.processing.numThreads\" : 4,\n" + " \"druid.indexer.runner.javaOpts\" : \"-Xmx1g -Xms1g\"\n" + " }\n" + "}"; From 1e021841bfdcc7db8a65acbed06d270c041f739b Mon Sep 17 00:00:00 2001 From: Maytas Monsereenusorn Date: Fri, 14 Jun 2024 22:27:31 -0700 Subject: [PATCH 2/2] Fix task context fails with non string property value --- .../indexing/overlord/ForkingTaskRunner.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java index 45986e78d306..c676877c1107 100644 --- a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java +++ b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/ForkingTaskRunner.java @@ -314,10 +314,13 @@ public TaskStatus call() if (context != null) { for (String propName : context.keySet()) { if (propName.startsWith(CHILD_PROPERTY_PREFIX)) { - command.addSystemProperty( - propName.substring(CHILD_PROPERTY_PREFIX.length()), - (Object) task.getContextValue(propName) - ); + Object contextValue = task.getContextValue(propName); + if (contextValue != null) { + command.addSystemProperty( + propName.substring(CHILD_PROPERTY_PREFIX.length()), + String.valueOf(contextValue) + ); + } } } } @@ -924,11 +927,6 @@ public CommandListBuilder addSystemProperty(String property, boolean value) return addSystemProperty(property, String.valueOf(value)); } - public CommandListBuilder addSystemProperty(String property, Object value) - { - return addSystemProperty(property, String.valueOf(value)); - } - public CommandListBuilder addSystemProperty(String property, String value) { return add(StringUtils.format("-D%s=%s", property, value));