diff --git a/kyuubi-common/src/main/scala/org/apache/kyuubi/session/SessionManager.scala b/kyuubi-common/src/main/scala/org/apache/kyuubi/session/SessionManager.scala index c0025f9b0..ccc263915 100644 --- a/kyuubi-common/src/main/scala/org/apache/kyuubi/session/SessionManager.scala +++ b/kyuubi-common/src/main/scala/org/apache/kyuubi/session/SessionManager.scala @@ -118,8 +118,11 @@ abstract class SessionManager(name: String) extends CompositeService(name) { throw KyuubiSQLException(s"Invalid $sessionHandle") } info(s"$sessionHandle is closed, current opening sessions $getOpenSessionCount") - session.close() - deleteOperationLogSessionDir(sessionHandle) + try { + session.close() + } finally { + deleteOperationLogSessionDir(sessionHandle) + } } private def deleteOperationLogSessionDir(sessionHandle: SessionHandle): Unit = { diff --git a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionManager.scala b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionManager.scala index 404a2d4e0..97ba4fddf 100644 --- a/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionManager.scala +++ b/kyuubi-server/src/main/scala/org/apache/kyuubi/session/KyuubiSessionManager.scala @@ -95,8 +95,11 @@ class KyuubiSessionManager private (name: String) extends SessionManager(name) { override def closeSession(sessionHandle: SessionHandle): Unit = { val session = getSession(sessionHandle) - super.closeSession(sessionHandle) - limiter.foreach(_.decrement(UserIpAddress(session.user, session.ipAddress))) + try { + super.closeSession(sessionHandle) + } finally { + limiter.foreach(_.decrement(UserIpAddress(session.user, session.ipAddress))) + } } def openBatchSession(