You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ch...@apache.org on 2021/07/17 07:00:40 UTC

[kafka] branch 3.0 updated: MINOR: make sure alterAclsPurgatory is closed when controller server … (#10868)

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

chia7712 pushed a commit to branch 3.0
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/3.0 by this push:
     new 919b255  MINOR: make sure alterAclsPurgatory is closed when controller server … (#10868)
919b255 is described below

commit 919b2550403282a43482c38d168ecd95bd6f9fad
Author: Chia-Ping Tsai <ch...@gmail.com>
AuthorDate: Sat Jul 17 14:52:37 2021 +0800

    MINOR: make sure alterAclsPurgatory is closed when controller server … (#10868)
    
    Reviewers:  Ismael Juma <is...@juma.me.uk>
---
 core/src/main/scala/kafka/server/AclApis.scala                 | 6 +++---
 core/src/main/scala/kafka/server/ControllerApis.scala          | 4 ++++
 core/src/main/scala/kafka/server/ControllerServer.scala        | 2 ++
 core/src/main/scala/kafka/server/DelayedFuture.scala           | 2 ++
 core/src/test/scala/unit/kafka/server/ControllerApisTest.scala | 7 +++++++
 5 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/core/src/main/scala/kafka/server/AclApis.scala b/core/src/main/scala/kafka/server/AclApis.scala
index a79ce84..97b685b 100644
--- a/core/src/main/scala/kafka/server/AclApis.scala
+++ b/core/src/main/scala/kafka/server/AclApis.scala
@@ -49,9 +49,9 @@ class AclApis(authHelper: AuthHelper,
   private val alterAclsPurgatory =
       new DelayedFuturePurgatory(purgatoryName = "AlterAcls", brokerId = config.nodeId)
 
-  def close(): Unit = {
-    alterAclsPurgatory.shutdown()
-  }
+  def isClosed: Boolean = alterAclsPurgatory.isShutdown
+
+  def close(): Unit = alterAclsPurgatory.shutdown()
 
   def handleDescribeAcls(request: RequestChannel.Request): Unit = {
     authHelper.authorizeClusterOperation(request, DESCRIBE)
diff --git a/core/src/main/scala/kafka/server/ControllerApis.scala b/core/src/main/scala/kafka/server/ControllerApis.scala
index 0eddbb4..35028b4 100644
--- a/core/src/main/scala/kafka/server/ControllerApis.scala
+++ b/core/src/main/scala/kafka/server/ControllerApis.scala
@@ -77,6 +77,10 @@ class ControllerApis(val requestChannel: RequestChannel,
   val requestHelper = new RequestHandlerHelper(requestChannel, quotas, time)
   private val aclApis = new AclApis(authHelper, authorizer, requestHelper, "controller", config)
 
+  def isClosed: Boolean = aclApis.isClosed
+
+  def close(): Unit = aclApis.close()
+
   override def handle(request: RequestChannel.Request, requestLocal: RequestLocal): Unit = {
     try {
       request.header.apiKey match {
diff --git a/core/src/main/scala/kafka/server/ControllerServer.scala b/core/src/main/scala/kafka/server/ControllerServer.scala
index 1518661..2ac7861 100644
--- a/core/src/main/scala/kafka/server/ControllerServer.scala
+++ b/core/src/main/scala/kafka/server/ControllerServer.scala
@@ -199,6 +199,8 @@ class ControllerServer(
         CoreUtils.swallow(socketServer.shutdown(), this)
       if (controllerApisHandlerPool != null)
         CoreUtils.swallow(controllerApisHandlerPool.shutdown(), this)
+      if (controllerApis != null)
+        CoreUtils.swallow(controllerApis.close(), this)
       if (quotaManagers != null)
         CoreUtils.swallow(quotaManagers.shutdown(), this)
       if (controller != null)
diff --git a/core/src/main/scala/kafka/server/DelayedFuture.scala b/core/src/main/scala/kafka/server/DelayedFuture.scala
index cf522ab..018fae0 100644
--- a/core/src/main/scala/kafka/server/DelayedFuture.scala
+++ b/core/src/main/scala/kafka/server/DelayedFuture.scala
@@ -97,4 +97,6 @@ class DelayedFuturePurgatory(purgatoryName: String, brokerId: Int) {
     executor.awaitTermination(60, TimeUnit.SECONDS)
     purgatory.shutdown()
   }
+
+  def isShutdown: Boolean = executor.isShutdown
 }
diff --git a/core/src/test/scala/unit/kafka/server/ControllerApisTest.scala b/core/src/test/scala/unit/kafka/server/ControllerApisTest.scala
index 58a9479..247ddc4 100644
--- a/core/src/test/scala/unit/kafka/server/ControllerApisTest.scala
+++ b/core/src/test/scala/unit/kafka/server/ControllerApisTest.scala
@@ -317,6 +317,13 @@ class ControllerApisTest {
   }
 
   @Test
+  def testClose(): Unit = {
+    val apis = createControllerApis(Some(createDenyAllAuthorizer()), mock(classOf[Controller]))
+    apis.close()
+    assertTrue(apis.isClosed)
+  }
+
+  @Test
   def testUnauthorizedBrokerRegistration(): Unit = {
     val brokerRegistrationRequest = new BrokerRegistrationRequest.Builder(
       new BrokerRegistrationRequestData()