Briefly, this error occurs when you try to remove a setting during the restore process of an Elasticsearch snapshot. Elasticsearch doesn’t allow certain settings to be removed or changed during a restore. To resolve this issue, you can either remove the setting from the restore request or change the setting to a valid value. Alternatively, you can modify the setting after the restore process has completed.
This guide will help you check for common problems that cause the log ” cannot remove setting [” + ignoredSetting + “] on restore ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: restore.
Overview
In Elasticsearch, restore refers to the snapshot restore mechanism, which returns indices or clusters to a previous, saved state. You can restore the entire cluster from the snapshot or restore an individual index or selected indices.
Examples
To restore the whole snapshot:
POST /_snapshot/my_backup/snapshot-01-11-2019/_restore
To restore an individual index:
POST /_snapshot/my_backup/snapshot-01-11-2019/_restore { "indices": "my_index" }
Notes
- If you are using a security tool like Searchguard, the snapshot restore capability must be enabled in elasticsearch.yml. Otherwise, it will throw a security exception.
Common issues
- If an index or indices already exist with the same names as those you are going to restore, they need to either be closed or deleted before you can restore from a snapshot. Otherwise, the restore operation will fail due to an error that the index already exists.
Log Context
Log “cannot remove setting [” + ignoredSetting + “] on restore” class name is RestoreService.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :
SetkeyFilters = new HashSet<>(); List simpleMatchPatterns = new ArrayList<>(); for (String ignoredSetting : ignoreSettings) { if (Regex.isSimpleMatchPattern(ignoredSetting) == false) { if (UNREMOVABLE_SETTINGS.contains(ignoredSetting)) { throw new SnapshotRestoreException(snapshot; "cannot remove setting [" + ignoredSetting + "] on restore"); } else { keyFilters.add(ignoredSetting); } } else { simpleMatchPatterns.add(ignoredSetting);
[ratemypost]