How To Solve Issues Related to Log – Cannot read metadata for snapshot

Get an Elasticsearch Check-Up

Check if your ES issues are caused from misconfigured settings
(Free 2 min process)

Check-Up

Last update: Feb-20

Elasticsearch Error Guide In Page Navigation (click to jump) :

Troubleshooting Background – start here to get the full picture       
Related Issues – selected resources on related issues  
Log Context – usefull for experts
About Opster – offering a diffrent approach to troubleshoot Elasticsearch

Check Your Elasticsearch Settings for Painfull Mistakes 


Troubleshooting background

To troubleshoot Elasticsearch log “Cannot read metadata for snapshot” it’s important to know common problems related to Elasticsearch concepts: blobstore, metadata, repositories, repository-azure, snapshot. See below-detailed explanations complete with common problems, examples and useful tips.

Metadata in Elasticsearch

What it is

Metadata is information about the data. In Elasticsearch, each document has associated metadata such as _id and _index meta fields.

Examples
  • Routing meta field:
    • _routing, a routing value that places a document in a particular shard.
  • Other meta field
    • _meta, not used by Elasticsearch but can be used to store application-specific metadata.
PUT index_01
{
  "mappings": {
    "_meta": { 
      "class": "App01::User01",
      "version": "01"
    }
  }
}

  • Identity meta fields: 
    _id , the id of the document, for example querying based on _id field
PUT index01/_doc/1
{
  "text": "Document with ID 1"
}
 
PUT index01/_doc/2
{
  "text": "Document with ID 2"
}
 
GET index01/_search
{
  "query": {
    "terms": {
      "_id": [ "1", "2" ] 
    }
  }
}

Repositories/Repository in Elasticsearch

What it is

An Elasticsearch snapshot provides a backup mechanism that takes the current state and data in the cluster and saves it to a repository (read the Glossary term Snapshot for more information). The backup process requires a repository to be created first. The repository needs to be registered using the _snapshot endpoint, and multiple repositories per cluster can be created. The following repository types are supported. 

Repository Types:
Repository TypeConfiguration Type
Shared file systemType: “fs”
S3Type : “s3”
HDFSType :“hdfs”
AzureType: “azure”
Google Cloud StorageType : “gcs”
Examples

To register a repository of type fs:

PUT _snapshot/my_repo_01
{
"type": "fs",
"settings": {
"location": "/mnt/my_repo_dir"
  }
}
Notes and common problems
  • S3, HDFS , Azure and Google Cloud requires a relevant plugin to be installed before it can be used for a snapshot.
  • The setting, path.repo: /mnt/my_repo_dir needs to be added to elasticsearch.yml on all the nodes in case you are planning to use repo type of file system otherwise it will fail
  • In case of using remote repositories , the network bandwidth and repository storage throughput should be high enough to complete the snapshot operations normally , otherwise you will end up in partial snapshots.


To help troubleshoot related issues we have gathered selected Q&A from the community and issues from Github , please review the following for further information :

1. Maven Build Problem  

2. Github Issue Number 18121      


Log Context

Log ”Cannot read metadata for snapshot” classname is BlobStoreRepository.java
We have extracted the following from Elasticsearch source code to get an in-depth context :

                 metaData = readSnapshotMetaData(snapshotId; snapshot.version(); indices; true);
            } else {
                metaData = readSnapshotMetaData(snapshotId; null; indices; true);
            }
        } catch (IOException | SnapshotException ex) {
            logger.warn("cannot read metadata for snapshot [{}]"; ex; snapshotId);
        }
        try {
            // Delete snapshot file first so we wouldn't end up with partially deleted snapshot that looks OK
            if (snapshot != null) {
                snapshotFormat(snapshot.version()).delete(snapshotsBlobContainer; snapshotId.getSnapshot());






About Opster

Incorporating deep knowledge and broad history of Elasticsearch issues. Opster’s solution identifies and predicts root causes of Elasticsearch problems, provides recommendations and can automatically perform various actions to manage, troubleshoot and prevent issues

Learn more: Glossary | Blog| Troubleshooting guides | Error Repository

Need help with any Elasticsearch issue ? Contact Opster

Did this page help you?