From 532e1c9fd56a9ed5c3c0402b2d9d553492ecc166 Mon Sep 17 00:00:00 2001 From: Charles Allen Date: Tue, 20 Oct 2015 09:04:38 -0700 Subject: [PATCH] Do not pass `druid.indexer.runner.javaOpts` to Peon as a property * Still places `druid.indexer.runner.javaOpts` on the command line, but the Peon no longer tries to have the property `druid.indexer.runner.javaOpts` set * Fixes https://github.com/druid-io/druid/issues/1841 --- .../java/io/druid/guice/IndexingServiceModuleHelper.java | 5 +++-- .../java/io/druid/indexing/overlord/ForkingTaskRunner.java | 6 ++++-- .../indexing/overlord/config/ForkingTaskRunnerConfig.java | 4 ++++ 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/indexing-service/src/main/java/io/druid/guice/IndexingServiceModuleHelper.java b/indexing-service/src/main/java/io/druid/guice/IndexingServiceModuleHelper.java index 0f3259a8d607..eaba75f3e695 100644 --- a/indexing-service/src/main/java/io/druid/guice/IndexingServiceModuleHelper.java +++ b/indexing-service/src/main/java/io/druid/guice/IndexingServiceModuleHelper.java @@ -26,10 +26,11 @@ */ public class IndexingServiceModuleHelper { + public static final String INDEXER_RUNNER_PROPERTY_PREFIX = "druid.indexer.runner"; public static void configureTaskRunnerConfigs(Binder binder) { - JsonConfigProvider.bind(binder, "druid.indexer.runner", ForkingTaskRunnerConfig.class); - JsonConfigProvider.bind(binder, "druid.indexer.runner", RemoteTaskRunnerConfig.class); + JsonConfigProvider.bind(binder, INDEXER_RUNNER_PROPERTY_PREFIX, ForkingTaskRunnerConfig.class); + JsonConfigProvider.bind(binder, INDEXER_RUNNER_PROPERTY_PREFIX, RemoteTaskRunnerConfig.class); JsonConfigProvider.bind(binder, "druid.zk.paths.indexer", IndexerZkConfig.class); } } diff --git a/indexing-service/src/main/java/io/druid/indexing/overlord/ForkingTaskRunner.java b/indexing-service/src/main/java/io/druid/indexing/overlord/ForkingTaskRunner.java index cf7279f87d0d..3cb40a14d288 100644 --- a/indexing-service/src/main/java/io/druid/indexing/overlord/ForkingTaskRunner.java +++ b/indexing-service/src/main/java/io/druid/indexing/overlord/ForkingTaskRunner.java @@ -176,7 +176,7 @@ public TaskStatus call() // Override task specific javaOpts Object taskJavaOpts = task.getContextValue( - "druid.indexer.runner.javaOpts" + ForkingTaskRunnerConfig.JAVA_OPTS_PROPERTY ); if (taskJavaOpts != null) { Iterables.addAll( @@ -187,7 +187,9 @@ public TaskStatus call() for (String propName : props.stringPropertyNames()) { for (String allowedPrefix : config.getAllowedPrefixes()) { - if (propName.startsWith(allowedPrefix)) { + // See https://github.com/druid-io/druid/issues/1841 + if (propName.startsWith(allowedPrefix) + && !ForkingTaskRunnerConfig.JAVA_OPTS_PROPERTY.equals(propName)) { command.add( String.format( "-D%s=%s", diff --git a/indexing-service/src/main/java/io/druid/indexing/overlord/config/ForkingTaskRunnerConfig.java b/indexing-service/src/main/java/io/druid/indexing/overlord/config/ForkingTaskRunnerConfig.java index f35825b7cf27..da0db3262b44 100644 --- a/indexing-service/src/main/java/io/druid/indexing/overlord/config/ForkingTaskRunnerConfig.java +++ b/indexing-service/src/main/java/io/druid/indexing/overlord/config/ForkingTaskRunnerConfig.java @@ -19,6 +19,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Lists; +import io.druid.guice.IndexingServiceModuleHelper; import javax.validation.constraints.Max; import javax.validation.constraints.Min; @@ -27,6 +28,9 @@ public class ForkingTaskRunnerConfig { + public static final String JAVA_OPTS_PROPERTY = IndexingServiceModuleHelper.INDEXER_RUNNER_PROPERTY_PREFIX + + ".javaOpts"; + @JsonProperty @NotNull private String javaCommand = "java";