浏览代码

Fix HealthMetadataService logging ERROR during master failover (#90750)

Just like we do for many other `ClusterStateTaskListener` we should not
log higher than debug here if the cause of the failure is a master
failover that can happen for any number of valid reasons.
Also, adjusted the level for other failures to `WARN` consistency
with other state upadates.
Armin Braun 3 年之前
父节点
当前提交
4d9147b6f6
共有 1 个文件被更改,包括 7 次插入1 次删除
  1. 7 1
      server/src/main/java/org/elasticsearch/health/metadata/HealthMetadataService.java

+ 7 - 1
server/src/main/java/org/elasticsearch/health/metadata/HealthMetadataService.java

@@ -8,6 +8,7 @@
 
 package org.elasticsearch.health.metadata;
 
+import org.apache.logging.log4j.Level;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.elasticsearch.Version;
@@ -20,6 +21,7 @@ import org.elasticsearch.cluster.ClusterStateTaskListener;
 import org.elasticsearch.cluster.NamedDiff;
 import org.elasticsearch.cluster.SimpleBatchedExecutor;
 import org.elasticsearch.cluster.service.ClusterService;
+import org.elasticsearch.cluster.service.MasterService;
 import org.elasticsearch.common.Priority;
 import org.elasticsearch.common.io.stream.NamedWriteableRegistry;
 import org.elasticsearch.common.settings.ClusterSettings;
@@ -172,7 +174,11 @@ public class HealthMetadataService {
 
         @Override
         public void onFailure(@Nullable Exception e) {
-            logger.error("failure during health metadata update", e);
+            logger.log(
+                MasterService.isPublishFailureException(e) ? Level.DEBUG : Level.WARN,
+                () -> "failure during health metadata update",
+                e
+            );
         }
 
         abstract ClusterState execute(ClusterState currentState);