You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@helix.apache.org by jx...@apache.org on 2018/11/14 00:49:50 UTC

helix git commit: Add extra logs for isLeader in ZKHelixManager

Repository: helix
Updated Branches:
  refs/heads/master 59536d39c -> 00e50db3a


Add extra logs for isLeader in ZKHelixManager

Espresso has one controller think itself is not leader for the cluster for 7 days. We dont have any logs for it. Adding logs to detect all the possible of non-leader situation.


Project: http://git-wip-us.apache.org/repos/asf/helix/repo
Commit: http://git-wip-us.apache.org/repos/asf/helix/commit/00e50db3
Tree: http://git-wip-us.apache.org/repos/asf/helix/tree/00e50db3
Diff: http://git-wip-us.apache.org/repos/asf/helix/diff/00e50db3

Branch: refs/heads/master
Commit: 00e50db3a476b13fc718c75cf74f76e479ec6a5b
Parents: 59536d3
Author: Junkai Xue <jx...@linkedin.com>
Authored: Thu Nov 1 11:18:25 2018 -0700
Committer: Junkai Xue <jx...@linkedin.com>
Committed: Tue Nov 13 16:49:42 2018 -0800

----------------------------------------------------------------------
 .../org/apache/helix/manager/zk/ZKHelixManager.java | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/helix/blob/00e50db3/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java
----------------------------------------------------------------------
diff --git a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java
index c4275df..ba3c16f 100644
--- a/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java
+++ b/helix-core/src/main/java/org/apache/helix/manager/zk/ZKHelixManager.java
@@ -797,12 +797,18 @@ public class ZKHelixManager implements HelixManager, IZkStateListener {
 
   @Override
   public boolean isLeader() {
+    String warnLogPrefix = String
+        .format("Instance %s is not leader of cluster %s due to", _instanceName, _clusterName);
     if (_instanceType != InstanceType.CONTROLLER
         && _instanceType != InstanceType.CONTROLLER_PARTICIPANT) {
+      LOG.warn(String
+          .format("%s instance type %s does not match to CONTROLLER/CONTROLLER_PARTICIPANT",
+              warnLogPrefix, _instanceType.name()));
       return false;
     }
 
     if (!isConnected()) {
+      LOG.warn(String.format("%s HelixManager is not connected", warnLogPrefix));
       return false;
     }
 
@@ -811,13 +817,19 @@ public class ZKHelixManager implements HelixManager, IZkStateListener {
       if (leader != null) {
         String leaderName = leader.getInstanceName();
         String sessionId = leader.getSessionId();
-        if (leaderName != null && leaderName.equals(_instanceName) && sessionId != null
-            && sessionId.equals(_sessionId)) {
+        if (leaderName != null && leaderName.equals(_instanceName) && sessionId != null && sessionId
+            .equals(_sessionId)) {
           return true;
         }
+        LOG.warn(String
+            .format("%s current session %s does not match leader session %s", warnLogPrefix,
+                _sessionId, sessionId));
       }
+      LOG.warn(String.format("%s leader ZNode is null", warnLogPrefix));
+
     } catch (Exception e) {
       // log
+      LOG.warn(String.format("%s exception happen when session check", warnLogPrefix), e);
     }
     return false;
   }