diff --git a/server/src/main/java/org/elasticsearch/common/ReferenceDocs.java b/server/src/main/java/org/elasticsearch/common/ReferenceDocs.java index b846e0d279514..6054d03c896fc 100644 --- a/server/src/main/java/org/elasticsearch/common/ReferenceDocs.java +++ b/server/src/main/java/org/elasticsearch/common/ReferenceDocs.java @@ -84,6 +84,7 @@ public enum ReferenceDocs { ALLOCATION_EXPLAIN_MAX_RETRY, SECURE_SETTINGS, CLUSTER_SHARD_LIMIT, + DELETE_INDEX_BLOCK, // this comment keeps the ';' on the next line so every entry above has a trailing ',' which makes the diff for adding new links cleaner ; diff --git a/server/src/main/resources/org/elasticsearch/common/reference-docs-links.txt b/server/src/main/resources/org/elasticsearch/common/reference-docs-links.txt index 2d3aded3b3d88..94992c2c3dda4 100644 --- a/server/src/main/resources/org/elasticsearch/common/reference-docs-links.txt +++ b/server/src/main/resources/org/elasticsearch/common/reference-docs-links.txt @@ -46,3 +46,4 @@ JDK_LOCALE_DIFFERENCES mapping-date-for ALLOCATION_EXPLAIN_MAX_RETRY cluster-allocation-explain.html#maximum-number-of-retries-exceeded SECURE_SETTINGS secure-settings.html CLUSTER_SHARD_LIMIT misc-cluster-settings.html#cluster-shard-limit +DELETE_INDEX_BLOCK api/doc/elasticsearch/operation/operation-indices-remove-block diff --git a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/JobModelSnapshotUpgrader.java b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/JobModelSnapshotUpgrader.java index 3af068bf8e444..5df8ee82cb332 100644 --- a/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/JobModelSnapshotUpgrader.java +++ b/x-pack/plugin/ml/src/main/java/org/elasticsearch/xpack/ml/job/process/autodetect/JobModelSnapshotUpgrader.java @@ -17,6 +17,7 @@ import org.elasticsearch.action.support.WriteRequest; import org.elasticsearch.client.internal.Client; import org.elasticsearch.common.CheckedSupplier; +import org.elasticsearch.common.ReferenceDocs; import org.elasticsearch.common.util.concurrent.AbstractRunnable; import org.elasticsearch.common.util.concurrent.EsRejectedExecutionException; import org.elasticsearch.common.util.concurrent.ThreadContext; @@ -196,15 +197,21 @@ private void deleteOlderSnapshotDoc(SearchResponse searchResponse, Consumer { - logger.warn( - () -> format( + logger.warn(() -> { + String baseMessage = format( "[%s] [%s] failed to delete old snapshot [%s] result document", jobId, snapshotId, ModelSizeStats.RESULT_TYPE_FIELD.getPreferredName() - ), - e - ); + ); + if (e instanceof org.elasticsearch.cluster.block.ClusterBlockException) { + return baseMessage + + ". Remove the write block from the results index to delete the model snapshot. See " + + ReferenceDocs.DELETE_INDEX_BLOCK + + " for details."; + } + return baseMessage; + }, e); }), () -> runAfter.accept(null))); }