Index Lifecycle Allocation Routed Step failing with NullPtrException

We are running an ElasticSearch 6.8.8 cluster.

We just implemented ILM for our indexes.

Here is our ILM Policy :

  {
      "policy": {
          "phases": {
              /* Hot phase - Resync Priority 100 */
              "hot": {
                  "min_age": "0ms",
                  "actions": {
                      "set_priority": {
                          "priority": 100
                      }
                  }
              },
              /* Warm phase - Resync Priority 50 */
              "warm": {
                  "min_age": "30d",
                  "actions": {
                      "set_priority": {
                          "priority": 50
                      }
                  }
              },
              /* Cold phase - Resync Priority 0 - Apply storageclass = mass */
              "cold": {
                  "min_age": "90d",
                  "actions": {
                      "allocate": {
                          "require": {
                              "storageclass": "mass"
                          }
                      },
                      "set_priority": {
                          "priority": 0
                      }
                  }
              }
          }
      }
  }

But we are facing a NullPointer Exception on AllocationRoutedStep

Here is the stacktrace :

java.lang.NullPointerException
	at org.elasticsearch.xpack.core.indexlifecycle.AllocationRoutedStep.isConditionMet(AllocationRoutedStep.java:70)
	at org.elasticsearch.xpack.indexlifecycle.ExecuteStepsUpdateTask.execute(ExecuteStepsUpdateTask.java:123)
	at org.elasticsearch.cluster.ClusterStateUpdateTask.execute(ClusterStateUpdateTask.java:47)
	at org.elasticsearch.cluster.service.MasterService.executeTasks(MasterService.java:643)
	at org.elasticsearch.cluster.service.MasterService.calculateTaskOutputs(MasterService.java:270)
	at org.elasticsearch.cluster.service.MasterService.runTasks(MasterService.java:200)
	at org.elasticsearch.cluster.service.MasterService$Batcher.run(MasterService.java:135)
	at org.elasticsearch.cluster.service.TaskBatcher.runIfNotProcessed(TaskBatcher.java:150)
	at org.elasticsearch.cluster.service.TaskBatcher$BatchedTask.run(TaskBatcher.java:188)
	at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingRunnable.run(ThreadContext.java:681)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPoolExecutor.java:252)
	at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:215)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

Hope this can be fixed or already fixed in 6.8.x relelease...

Regards,

We tried to upgrade to 6.8.12 but error remain the same.

if this happens on the latest 6.8 release (as you seem to indicate), please open a github issue. You might be able to pinpoint this further by reducing your policy first and have fewer actions/phases in there.

all other steps are fine (hot/warm) only got the error on cold step when trying to relocate data.
i'll open an issue.

here it is.

1 Like