This is an automated email from the ASF dual-hosted git repository. rzo1 pushed a commit to branch docs/scheduler-strategy-whitelist-note in repository https://gitbox.apache.org/repos/asf/storm.git
commit efbf2f38e60c09752522f2f5ea8754d708506138 Author: Richard Zowalla <[email protected]> AuthorDate: Sat Aug 22 19:05:57 2026 +0200 Document that an unset scheduler strategy whitelist no longer allows every strategy class --- conf/defaults.yaml | 1 + docs/Resource_Aware_Scheduler_overview.md | 2 +- storm-client/src/jvm/org/apache/storm/Config.java | 3 ++- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/conf/defaults.yaml b/conf/defaults.yaml index 8a1361ff2..6fd7a04b9 100644 --- a/conf/defaults.yaml +++ b/conf/defaults.yaml @@ -92,6 +92,7 @@ nimbus.file.copy.expiration.secs: 600 nimbus.topology.validator: "org.apache.storm.nimbus.DefaultTopologyValidator" # The scheduler strategies that a topology is allowed to select through topology.scheduler.strategy. # Defaults to the strategies shipped with Storm; a custom strategy must be added to this list. +# Removing this config or leaving it unset selects the same shipped strategies, not all of them. nimbus.scheduler.strategy.class.whitelist: - "org.apache.storm.scheduler.resource.strategies.scheduling.DefaultResourceAwareStrategy" - "org.apache.storm.scheduler.resource.strategies.scheduling.DefaultResourceAwareStrategyOld" diff --git a/docs/Resource_Aware_Scheduler_overview.md b/docs/Resource_Aware_Scheduler_overview.md index 353cc0f3e..2b5c0d30b 100644 --- a/docs/Resource_Aware_Scheduler_overview.md +++ b/docs/Resource_Aware_Scheduler_overview.md @@ -251,7 +251,7 @@ A user can specify on a per topology basis what scheduling strategy to use. Use Parameters: * clazz – The strategy class that implements the IStrategy interface -Only the strategies that ship with Storm may be selected by default. A strategy of your own has to be added to `nimbus.scheduler.strategy.class.whitelist` in the nimbus configuration, otherwise nimbus refuses to schedule the topology and reports which class was refused. +Only the strategies that ship with Storm may be selected by default. They are listed under `nimbus.scheduler.strategy.class.whitelist` in *conf/defaults.yaml*, and the same set applies when that config is not set at all. This differs from earlier releases, where leaving `nimbus.scheduler.strategy.class.whitelist` unset allowed any strategy class on the nimbus classpath, so a cluster upgrading from such a release has to add its own strategies to the list. A strategy of your own has to [...] Example Usage: ``` diff --git a/storm-client/src/jvm/org/apache/storm/Config.java b/storm-client/src/jvm/org/apache/storm/Config.java index 8ac78f954..226a4b4ca 100644 --- a/storm-client/src/jvm/org/apache/storm/Config.java +++ b/storm-client/src/jvm/org/apache/storm/Config.java @@ -2079,7 +2079,8 @@ public class Config extends HashMap<String, Object> { public static final String NIMBUS_IMPERSONATION_ACL = "nimbus.impersonation.acl"; /** * A whitelist of the RAS scheduler strategies allowed by nimbus. Should be a list of fully-qualified class names. When it is not - * set only the scheduler strategies shipped with Storm are allowed, so a custom strategy has to be listed here explicitly. + * set only the scheduler strategies shipped with Storm are allowed, so a custom strategy has to be listed here explicitly. A + * topology that selects a strategy which is not allowed is rejected by nimbus. */ @IsStringList public static final String NIMBUS_SCHEDULER_STRATEGY_CLASS_WHITELIST = "nimbus.scheduler.strategy.class.whitelist";
