Rollover exception

Hello Experts,

I'm using ES 7.1.0.

One index is not rolling over after reached to 40GB. Old indices rolled over successfully. Here is the below error:

{
  "indices" : {
    "classicapps-2021.03.25-000068" : {
      "index" : "classicapps-2021.03.25-000068",
      "managed" : true,
      "policy" : "cp_policy",
      "lifecycle_date_millis" : 1616696675011,
      "phase" : "hot",
      "phase_time_millis" : 1616696675369,
      "action" : "rollover",
      "action_time_millis" : 1616697275500,
      "step" : "ERROR",
      "step_time_millis" : 1616706874629,
      "failed_step" : "check-rollover-ready",
      "step_info" : {
        "type" : "null_pointer_exception",
        "reason" : null,
        "stack_trace" : """
java.lang.NullPointerException
	at org.elasticsearch.action.admin.indices.rollover.TransportRolloverAction.evaluateConditions(TransportRolloverAction.java:252)
	at org.elasticsearch.action.admin.indices.rollover.TransportRolloverAction$1.onResponse(TransportRolloverAction.java:127)
	at org.elasticsearch.action.admin.indices.rollover.TransportRolloverAction$1.onResponse(TransportRolloverAction.java:124)
	at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:68)
	at org.elasticsearch.action.support.TransportAction$1.onResponse(TransportAction.java:64)
	at org.elasticsearch.action.support.broadcast.node.TransportBroadcastByNodeAction$AsyncAction.onCompletion(TransportBroadcastByNodeAction.java:383)
	at org.elasticsearch.action.support.broadcast.node.TransportBroadcastByNodeAction$AsyncAction.onNodeResponse(TransportBroadcastByNodeAction.java:352)
	at org.elasticsearch.action.support.broadcast.node.TransportBroadcastByNodeAction$AsyncAction$1.handleResponse(TransportBroadcastByNodeAction.java:324)
	at org.elasticsearch.action.support.broadcast.node.TransportBroadcastByNodeAction$AsyncAction$1.handleResponse(TransportBroadcastByNodeAction.java:314)
	at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleResponse(TransportService.java:1114)
	at org.elasticsearch.transport.TcpTransport$1.doRun(TcpTransport.java:975)
	at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
	at org.elasticsearch.common.util.concurrent.EsExecutors$DirectExecutorService.execute(EsExecutors.java:192)
	at org.elasticsearch.transport.TcpTransport.handleResponse(TcpTransport.java:967)
	at org.elasticsearch.transport.TcpTransport.messageReceived(TcpTransport.java:942)
	at org.elasticsearch.transport.TcpTransport.inboundMessage(TcpTransport.java:753)
	at org.elasticsearch.transport.netty4.Netty4MessageChannelHandler.channelRead(Netty4MessageChannelHandler.java:53)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:323)
	at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:297)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.handler.logging.LoggingHandler.channelRead(LoggingHandler.java:241)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:340)
	at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1434)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:362)
	at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:348)
	at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:965)
	at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:163)
	at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:656)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeysPlain(NioEventLoop.java:556)
	at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:510)
	at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:470)
	at io.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:909)
	at java.base/java.lang.Thread.run(Thread.java:835)

"""
      },
      "phase_execution" : {
        "policy" : "cp_policy",
        "phase_definition" : {
          "min_age" : "0ms",
          "actions" : {
            "rollover" : {
              "max_size" : "40gb"
            }
          }
        },
        "version" : 22,
        "modified_date_in_millis" : 1616565308562
      }
    }
  }
}

Is it a bug?

It could be. Upgrade to 7.12.0 and check if this has been solved since 7.1.0.

This was fixed a lot time ago: Prevent NullPointerException in TransportRolloverAction by dakrone · Pull Request #43353 · elastic/elasticsearch · GitHub

Please upgrade Elasticsearch

1 Like

My Version is ES 7.1.0. Since which version it is fixed? From your discussion...it is not clear.

This was fixed in 7.2.1 and later.