-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Description
Describe the bug
in OS 2.15, IndexSetting.java, method getNumberOfReplicas will give null pointer exception in scenarios when null is returned from settings.getAsInt methods because the return type of this method is int (not Integer).
public int getNumberOfReplicas() {
return settings.getAsInt(IndexMetadata.SETTING_NUMBER_OF_REPLICAS, null);
}
Related component
Indexing
To Reproduce
Create an index with replica count passed as null.
Expected behavior
It should treat the default value as 1 for replica count is not passed.
Additional Details
[2024-07-16T17:02:27,740][DEBUG][o.o.c.m.MetadataCreateIndexService] [local_10-10] [ds7_dfs_] failed to create
java.lang.NullPointerException: Cannot invoke "java.lang.Integer.intValue()" because the return value of "org.opensearch.common.settings.Settings.getAsInt(String, java.lang.Integer)" is null
at org.opensearch.index.IndexSettings.getNumberOfReplicas(IndexSettings.java:1248)
at org.opensearch.indices.IndicesService.createIndexService(IndicesService.java:867)
at org.opensearch.indices.IndicesService.withTempIndexService(IndicesService.java:830)
at org.opensearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexWithTemporaryService(MetadataCreateIndexService.java:502)
at org.opensearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequestWithV1Templates(MetadataCreateIndexService.java:643)
at org.opensearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:464) ~
at org.opensearch.cluster.metadata.MetadataCreateIndexService.applyCreateIndexRequest(MetadataCreateIndexService.java:471)
at org.opensearch.cluster.metadata.MetadataCreateIndexService$1.execute(MetadataCreateIndexService.java:377)
at org.opensearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:67)
at org.opensearch.cluster.service.MasterService.executeTasks(MasterService.java:904)
at org.opensearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:456)
at org.opensearch.cluster.service.MasterService.runTasks(MasterService.java:316)
at org.opensearch.cluster.service.MasterService$Batcher.run(MasterService.java:227)
at org.opensearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:204)
at org.opensearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:242)
at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:882)
at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedOpenSearchThreadPoolExecutor.java:283)