diff --git a/dev-support/spotbugs-exclude.xml b/dev-support/spotbugs-exclude.xml
index 1137f5fdc142..2f0684eff4d7 100644
--- a/dev-support/spotbugs-exclude.xml
+++ b/dev-support/spotbugs-exclude.xml
@@ -252,4 +252,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
index 1d3981f78846..b7d446bc0feb 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/NettyRpcServer.java
@@ -130,8 +130,12 @@ public synchronized void start() {
}
authTokenSecretMgr = createSecretManager();
if (authTokenSecretMgr != null) {
- setSecretManager(authTokenSecretMgr);
- authTokenSecretMgr.start();
+ // Start AuthenticationTokenSecretManager in synchronized way to avoid race conditions in
+ // LeaderElector start. See HBASE-25875
+ synchronized (authTokenSecretMgr) {
+ setSecretManager(authTokenSecretMgr);
+ authTokenSecretMgr.start();
+ }
}
this.authManager = new ServiceAuthorizationManager();
HBasePolicyProvider.init(conf, authManager);
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcServer.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcServer.java
index 38c771277360..bab0a6dec091 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcServer.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/ipc/SimpleRpcServer.java
@@ -417,8 +417,12 @@ public synchronized void start() {
}
authTokenSecretMgr = createSecretManager();
if (authTokenSecretMgr != null) {
- setSecretManager(authTokenSecretMgr);
- authTokenSecretMgr.start();
+ // Start AuthenticationTokenSecretManager in synchronized way to avoid race conditions in
+ // LeaderElector start. See HBASE-25875
+ synchronized (authTokenSecretMgr) {
+ setSecretManager(authTokenSecretMgr);
+ authTokenSecretMgr.start();
+ }
}
this.authManager = new ServiceAuthorizationManager();
HBasePolicyProvider.init(conf, authManager);