Skip to content

[BUG] NullPointerException when creating remote index from snapshot #19349

@Kyle-Cooley

Description

@Kyle-Cooley

Describe the bug

A NullPointerException can be thrown when calculating the total size of existing shards created from remote snapshots. This appears to happen while shards are being allocated.

Related component

Search:Searchable Snapshots

To Reproduce

Use the POST /_snapshot/<repository>/<snapshot>/_restore to restore indices from multiple snapshots using remote_snapshot as the storage_type in a tight loop.

Expected behavior

The indices are restored.

Additional Details

Plugins
Please list all plugins currently enabled.

  • all defaults
  • repository-s3
  • prometheus-exporter

Screenshots
If applicable, add screenshots to help explain your problem.

Host/Environment (please complete the following information):

  • OS: Amazon Linux container
  • Version 3.2.0

Additional context
Add any other context about the problem here.

java.lang.NullPointerException: null
        at java.base/java.util.stream.ReferencePipeline$5$1.accept(ReferencePipeline.java:249) ~[?:?]
        at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:215) ~[?:?]
        at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1716) ~[?:?]
        at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570) ~[?:?]
        at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560) ~[?:?]
        at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921) ~[?:?]
        at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265) ~[?:?]
        at java.base/java.util.stream.LongPipeline.reduce(LongPipeline.java:502) ~[?:?]
        at java.base/java.util.stream.LongPipeline.sum(LongPipeline.java:460) ~[?:?]
        at org.opensearch.snapshots.RestoreService$1.validateSearchableSnapshotRestorable(RestoreService.java:906) ~[opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.snapshots.RestoreService$1.execute(RestoreService.java:588) ~[opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:67) ~[opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.ClusterManagerService.executeTasks(ClusterManagerService.java:890) ~[opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.ClusterManagerService.calculateTaskOutputs(ClusterManagerService.java:441) ~[opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.ClusterManagerService.runTasks(ClusterManagerService.java:301) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.ClusterManagerService$Batcher.run(ClusterManagerService.java:214) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:206) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:264) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:916) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedOpenSearchThreadPoolExecutor.java:299) [opensearch-3.2.0.jar:3.2.0]
        at org.opensearch.common.util.concurrent.PrioritizedOpenSearchThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedOpenSearchThreadPoolExecutor.java:262) [opensearch-3.2.0.jar:3.2.0]
        at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) [?:?]
        at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) [?:?]
        at java.base/java.lang.Thread.run(Thread.java:1447) [?:?]

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions