-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Closed
Labels
Description
Describe the bug
When restoring indices as remote_snapshot sometimes a nullpointer exception occurs:
opensearch-master-nodes-1 opensearch-master-nodes [2025-11-01T15:15:48,819][WARN ][r.suppressed ] [opensearch-master-nodes-1] path: /_snapshot/data/log-suricata-dns-2025.week-13/_restore, params: {pretty=true, repository=data, snapshot=log-suricata-dns-2025.week-13}
opensearch-master-nodes-1 opensearch-master-nodes org.opensearch.transport.RemoteTransportException: [opensearch-master-nodes-0][10.244.106.104:9300][cluster:admin/snapshot/restore]
opensearch-master-nodes-1 opensearch-master-nodes Caused by: java.lang.NullPointerException
opensearch-master-nodes-1 opensearch-master-nodes at java.util.stream.ReferencePipeline$5$1.accept(ReferencePipeline.java:249) ~[?:?]
opensearch-master-nodes-1 opensearch-master-nodes at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215) ~[?:?]
opensearch-master-nodes-1 opensearch-master-nodes at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) ~[?:?]
opensearch-master-nodes-1 opensearch-master-nodes at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes [2025-11-01T15:15:48,817][WARN ][o.o.s.RestoreService ] [opensearch-master-nodes-0] [log-suricata-dns-2025.week-13/rqyclBSrTDOZYwP15zCQzg] failed to restore snapshot
opensearch-master-nodes-0 opensearch-master-nodes java.lang.NullPointerException: null
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.ReferencePipeline$5$1.accept(ReferencePipeline.java:249) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.LongPipeline.reduce(LongPipeline.java:502) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.stream.LongPipeline.sum(LongPipeline.java:460) ~[?:?]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.snapshots.RestoreService$1.validateSearchableSnapshotRestorable(RestoreService.java:916) ~[opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.snapshots.RestoreService$1.execute(RestoreService.java:588) ~[opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:67) ~[opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.ClusterManagerService.executeTasks(ClusterManagerService.java:890) ~[opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.ClusterManagerService.calculateTaskOutputs(ClusterManagerService.java:441) ~[opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.ClusterManagerService.runTasks(ClusterManagerService.java:301) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.ClusterManagerService$Batcher.run(ClusterManagerService.java:214) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:206) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:264) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:916) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedOpenSearchThreadPoolExecutor.java:299) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedOpenSearchThreadPoolExecutor.java:262) [opensearch-3.3.1.jar:3.3.1]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) [?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) [?:?]
opensearch-master-nodes-0 opensearch-master-nodes at java.base/java.lang.Thread.run(Thread.java:1447) [?:?]
Related component
No response
To Reproduce
Doing the call from python:
body = {
"indices": "*",
"storage_type": "remote_snapshot",
"rename_pattern": "^(.*)",
"rename_replacement": "$1-snapshot",
"index_settings": {"index.number_of_replicas": 0}
}
response = self.requests.post(f"{self.base_url}/_snapshot/data/{snapshot_name}/_restore?wait_for_completion=true", json=body)
is enough to trigger it. A subsequent call can succeed. Same thing happens from dashboards GUI.
Expected behavior
No NPE
Additional Details
Opensearch 3.3.0 basic docker image with S3 plugin installed. Restoring from an S3 appliance.
Reactions are currently unavailable