I'm building my own index from scratch and unfortunately I'm having some issues when starting Photon with this index. It seems that according to ElasticSearch it is in "recovering" state. However, it feels like it cannot complete recovering due to Photon crashing 10s after "ES cluster is now ready" appears, so this is basically an endless loop which I am not able to fix...
Is there any recommendation about how to let ES finish recovering or - even better - how to avoid the index being in the recovering state right on startup?
Below is my full stack trace.
Thanks in advance for any help!
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
2023-02-02 16:30:28,770 [main] WARN org.elasticsearch.node.Node - version [5.6.16-SNAPSHOT] is a pre-release version of Elasticsearch and is not suitable for production
2023-02-02 16:30:37,153 [main] INFO de.komoot.photon.elasticsearch.Server - started elastic search node
2023-02-02 16:30:37,153 [main] INFO de.komoot.photon.App - Make sure that the ES cluster is ready, this might take some time.
2023-02-02 16:31:07,168 [main] INFO de.komoot.photon.App - ES cluster is now ready.
Exception in thread "main" NoShardAvailableActionException[No shard available for [get [photon][place][DATABASE_PROPERTIES]: routing [null]]]; nested: RemoteTransportException[[RhpYFsP][127.0.0.1:9300][indices:data/read/get[s]]]; nested: IllegalIndexShardStateException[CurrentState[RECOVERING] operations only allowed when shard state is one of [POST_RECOVERY, STARTED, RELOCATED]];
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.perform(TransportSingleShardAction.java:209)
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.onFailure(TransportSingleShardAction.java:196)
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction.access$1300(TransportSingleShardAction.java:123)
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$AsyncSingleAction$2.handleException(TransportSingleShardAction.java:252)
at org.elasticsearch.transport.TransportService$ContextRestoreResponseHandler.handleException(TransportService.java:1085)
at org.elasticsearch.transport.TransportService$DirectResponseChannel.processException(TransportService.java:1189)
at org.elasticsearch.transport.TransportService$DirectResponseChannel.sendResponse(TransportService.java:1167)
at org.elasticsearch.transport.TransportService$7.onFailure(TransportService.java:673)
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.onFailure(ThreadContext.java:660)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:39)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: RemoteTransportException[[RhpYFsP][127.0.0.1:9300][indices:data/read/get[s]]]; nested: IllegalIndexShardStateException[CurrentState[RECOVERING] operations only allowed when shard state is one of [POST_RECOVERY, STARTED, RELOCATED]];
Caused by: [photon/3a877LrxTseV62PeKN0zBA][[photon][0]] IllegalIndexShardStateException[CurrentState[RECOVERING] operations only allowed when shard state is one of [POST_RECOVERY, STARTED, RELOCATED]]
at org.elasticsearch.index.shard.IndexShard.readAllowed(IndexShard.java:1104)
at org.elasticsearch.index.shard.IndexShard.get(IndexShard.java:615)
at org.elasticsearch.index.get.ShardGetService.innerGet(ShardGetService.java:154)
at org.elasticsearch.index.get.ShardGetService.get(ShardGetService.java:82)
at org.elasticsearch.action.get.TransportGetAction.shardOperation(TransportGetAction.java:95)
at org.elasticsearch.action.get.TransportGetAction.shardOperation(TransportGetAction.java:44)
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$ShardTransportHandler.messageReceived(TransportSingleShardAction.java:294)
at org.elasticsearch.action.support.single.shard.TransportSingleShardAction$ShardTransportHandler.messageReceived(TransportSingleShardAction.java:287)
at org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33)
at org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:69)
at org.elasticsearch.transport.TransportService$7.doRun(TransportService.java:662)
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:675)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Hi, first of all thanks for that great project!
I'm building my own index from scratch and unfortunately I'm having some issues when starting Photon with this index. It seems that according to ElasticSearch it is in "recovering" state. However, it feels like it cannot complete recovering due to Photon crashing 10s after "ES cluster is now ready" appears, so this is basically an endless loop which I am not able to fix...
Is there any recommendation about how to let ES finish recovering or - even better - how to avoid the index being in the recovering state right on startup?
Below is my full stack trace.
Thanks in advance for any help!