Recovery failed for primary shadow shard failing shard – How to solve this Elasticsearch error

Opster Team

Aug-23, Version: 2.3-2.3

Briefly, this error occurs when Elasticsearch is unable to recover a primary shard from a replica due to issues like network problems, disk space issues, or corruption of the shard data. To resolve this, you can try the following: 1) Check and ensure there’s enough disk space. 2) Verify network connectivity between the nodes. 3) Try to manually reroute the shard using the cluster reroute API. 4) If corruption is suspected, you may need to restore the shard from a backup. Always ensure your data is regularly backed up to prevent data loss.

This guide will help you check for common problems that cause the log ” recovery failed for primary shadow shard; failing shard ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: handler, indices, recovery, shard and source.

Log Context

Log “recovery failed for primary shadow shard; failing shard” classname is SharedFSRecoverySourceHandler.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

             if (engineClosed) {
                // If the relocation fails then the primary is closed and can't be
                // used anymore... (because it's closed) that's a problem; so in
                // that case; fail the shard to reallocate a new IndexShard and
                // create a new IndexWriter
                logger.info("recovery failed for primary shadow shard; failing shard");
                // pass the failure as null; as we want to ensure the store is not marked as corrupted
                shard.failShard("primary relocation failed on shared filesystem caused by: [" + t.getMessage() + "]"; null);
            } else {
                logger.info("recovery failed on shared filesystem"; t);
            }




 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?