Closed
Description
Describe the bug
Attempting to apply search_backpressure.search_shard_task.cancellation_burst
or search_backpressure.search_task.cancellation_burst
settings results in the cluster manager getting stuck in a loop emitting an error that says "java.lang.IllegalArgumentException: rate must be greater than zero".
Related component
Search
To Reproduce
Download the OpenSearch 2.17 min distribution tarball, extract it, then launch the process with ./bin/opensearch
. Send the following command:
PUT {{endpoint}}/_cluster/settings
{
"persistent" :{
"search_backpressure.search_shard_task.cancellation_burst": 5.0,
"search_backpressure.search_task.cancellation_burst": 5.0
},
"transient" :{
"search_backpressure.search_shard_task.cancellation_burst": 5.0,
"search_backpressure.search_task.cancellation_burst": 5.0
}
}
The cluster manager gets stuck in a loop continually printing the following error:
[2024-10-22T17:04:48,028][WARN ][o.o.c.s.ClusterApplierService] [ip-172-31-30-74] failed to apply updated cluster state in [0s]:
version [12], uuid [Ijs3Brl0S-iEtMlifjtcmA], source [becoming candidate: clusterApplier#onNewClusterState]
org.opensearch.OpenSearchException: java.lang.IllegalArgumentException: rate must be greater than zero
at org.opensearch.ExceptionsHelper.maybeThrowRuntimeAndSuppress(ExceptionsHelper.java:209) ~[opensearch-core-2.17.0.jar:2.17.0] at org.opensearch.search.backpressure.settings.SearchShardTaskSettings.notifyListeners(SearchShardTaskSettings.java:270) ~[opensearch-2.17.0.jar:2.17.0] at org.opensearch.search.backpressure.settings.SearchShardTaskSettings.setCancellationBurst(SearchShardTaskSettings.java:252) ~[opensearch-2.17.0.jar:2.17.0] at org.opensearch.common.settings.Setting$Updater.apply(Setting.java:1257) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.settings.AbstractScopedSettings$SettingUpdater.lambda$updater$0(AbstractScopedSettings.java:696) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.settings.AbstractScopedSettings.applySettings(AbstractScopedSettings.java:232) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.cluster.service.ClusterApplierService.applyChanges(ClusterApplierService.java:575) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.cluster.service.ClusterApplierService.runTask(ClusterApplierService.java:503) [opensearch-2.17.0.jar:2.17.0]
at org.opensearch.cluster.service.ClusterApplierService$UpdateTask.run(ClusterApplierService.java:205) [opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:946) [opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedOpenSearchThreadPoolExecutor.java:283) [opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedOpenSearchThreadPoolExecutor.java:246) [opensearch-2.17.0.jar:2.17.0]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [?:?]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [?:?] at java.base/java.lang.Thread.run(Thread.java:1583) [?:?] Caused by: java.lang.IllegalArgumentException: rate must be greater than zero at org.opensearch.common.util.TokenBucket.<init>(TokenBucket.java:52) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.common.util.TokenBucket.<init>(TokenBucket.java:47) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.search.backpressure.SearchBackpressureState.onRateChanged(SearchBackpressureState.java:95) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.search.backpressure.SearchBackpressureState.onBurstChanged(SearchBackpressureState.java:101) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.search.backpressure.settings.SearchShardTaskSettings.lambda$setCancellationBurst$2(SearchShardTaskSettings.java:252) ~[opensearch-2.17.0.jar:2.17.0]
at org.opensearch.search.backpressure.settings.SearchShardTaskSettings.notifyListeners(SearchShardTaskSettings.java:264) ~[opensearch-2.17.0.jar:2.17.0]
... 13 more
Expected behavior
Settings are applied without error.
Additional Details
No response
Metadata
Metadata
Assignees
Type
Projects
Status
✅ Done