This is an automated email from the ASF dual-hosted git repository.

sshenoy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 130b7b6587 HDDS-8068. Fix Exception: JMXJsonServlet, getting attribute 
RatisRoles of Hadoop:service=OzoneManager. (#4352)
130b7b6587 is described below

commit 130b7b65879da76035e27f6fdfea32be038d1f6b
Author: ashishkumar50 <[email protected]>
AuthorDate: Tue Mar 21 12:12:53 2023 +0530

    HDDS-8068. Fix Exception: JMXJsonServlet, getting attribute RatisRoles of 
Hadoop:service=OzoneManager. (#4352)
---
 .../java/org/apache/hadoop/ozone/om/OzoneManager.java    |  4 ++++
 .../hadoop/ozone/om/ratis/OzoneManagerRatisServer.java   | 16 +++++++++-------
 2 files changed, 13 insertions(+), 7 deletions(-)

diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index e6381162b5..b2b163b0a8 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -2928,6 +2928,10 @@ public final class OzoneManager extends 
ServiceRuntimeInfoImpl
     if (isRatisEnabled) {
       try {
         leaderId = omRatisServer.getLeader();
+        if (leaderId == null) {
+          LOG.error("No leader found");
+          return "Exception: Not a leader";
+        }
         serviceList = getServiceList();
       } catch (IOException e) {
         LOG.error("IO-Exception Occurred", e);
diff --git 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
index aa4c9b1db8..3b4e899910 100644
--- 
a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
+++ 
b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/ratis/OzoneManagerRatisServer.java
@@ -750,13 +750,15 @@ public final class OzoneManagerRatisServer {
   public RaftPeer getLeader() {
     try {
       RaftServer.Division division = server.getDivision(raftGroupId);
-      if (division.getInfo().isLeader()) {
-        return division.getPeer();
-      } else {
-        ByteString leaderId = division.getInfo().getRoleInfoProto()
-            .getFollowerInfo().getLeaderInfo().getId().getId();
-        return leaderId.isEmpty() ? null :
-            division.getRaftConf().getPeer(RaftPeerId.valueOf(leaderId));
+      if (division != null) {
+        if (division.getInfo().isLeader()) {
+          return division.getPeer();
+        } else {
+          ByteString leaderId = division.getInfo().getRoleInfoProto()
+                  .getFollowerInfo().getLeaderInfo().getId().getId();
+          return leaderId.isEmpty() ? null :
+                  division.getRaftConf().getPeer(RaftPeerId.valueOf(leaderId));
+        }
       }
     } catch (IOException e) {
       // In this case we return not a leader.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to