From 3b8014546e48b5a5260665f06c4971e80cf86867 Mon Sep 17 00:00:00 2001 From: Henning Andersen Date: Thu, 16 Jan 2025 20:10:00 +0100 Subject: [PATCH] Only add verified if not verified (with read-only + write block at the same time). --- .../cluster/metadata/MetadataIndexStateService.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java b/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java index 7c60a41d8082f..ad1d23aaad44c 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataIndexStateService.java @@ -1059,10 +1059,12 @@ private static Tuple> finalizeBlock( if (block.getBlock().contains(ClusterBlockLevel.WRITE) && markVerified) { final IndexMetadata indexMetadata = metadata.getSafe(index); - final IndexMetadata.Builder updatedMetadata = IndexMetadata.builder(indexMetadata) - .settings(Settings.builder().put(indexMetadata.getSettings()).put(VERIFIED_READ_ONLY_SETTING.getKey(), true)) - .settingsVersion(indexMetadata.getSettingsVersion() + 1); - metadata.put(updatedMetadata); + if (VERIFIED_READ_ONLY_SETTING.get(indexMetadata.getSettings()) == false) { + final IndexMetadata.Builder updatedMetadata = IndexMetadata.builder(indexMetadata) + .settings(Settings.builder().put(indexMetadata.getSettings()).put(VERIFIED_READ_ONLY_SETTING.getKey(), true)) + .settingsVersion(indexMetadata.getSettingsVersion() + 1); + metadata.put(updatedMetadata); + } } } catch (final IndexNotFoundException e) { logger.debug("index {} has been deleted since blocking it started, ignoring", index);